{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 图像入门\n",
    "学习目标：\n",
    "- 图像的读取、显示、保存\n",
    "- 学习三个函数：cv2.imread(), cv2.imshow() , cv2.imwrite()\n",
    "- 使用 Matplotlib 来显示图像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:22:38.860135Z",
     "start_time": "2019-01-26T16:22:38.312449Z"
    }
   },
   "outputs": [],
   "source": [
    "# 导入常用包\n",
    "#%matplotlib notebook\n",
    "import numpy as np\n",
    "import cv2\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 读取显示图像"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:22:45.018612Z",
     "start_time": "2019-01-26T16:22:40.597161Z"
    }
   },
   "outputs": [],
   "source": [
    "img = cv2.imread(\"img.jpg\", 0) # 1: 显示原始图， 0：灰度图  -1：加载图像包括 alpha 通道\n",
    "cv2.imshow(\"image\", img) # 第一个参数为显示窗口的名称，第二个参数是要显示的图像\n",
    "k = cv2.waitKey(0) & 0xFF # cv2.waitKey()  键盘绑定函数，等待键盘按下，以毫秒为计数单位，也可以设定特定按键点击。64 bit 的机器要 cv2.waitKey(0) & 0xFF\n",
    "if k == 27:         # 等待按下 ESC 键退出， \n",
    "    cv2.destroyAllWindows() # 销毁所有窗口，也可以用 cv2.destroyWindow() 销毁特定的窗口。\n",
    "elif k == ord('s'): # 指定某个按键按下后指定某种操作，如这里是保存\n",
    "    cv2.imwrite('image_write.png',img)\n",
    "    cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果：![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkfz55k4hj206l05aq3g.jpg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:22:48.870411Z",
     "start_time": "2019-01-26T16:22:47.267333Z"
    }
   },
   "outputs": [],
   "source": [
    "cv2.namedWindow(\"image_new\", cv2.WINDOW_NORMAL) # 创建一个新的窗口，这个窗口大小可以进行调节的\n",
    "cv2.imshow(\"image_new\", img)\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyWindow(\"image_new\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkfzs4gu2j20ed0dimy8.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 写图像（保存图像）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:22:52.401393Z",
     "start_time": "2019-01-26T16:22:52.389400Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv2.imwrite(\"image_write.png\", img) # 保存图像，可以指定保存图像的格式"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg0c5gl0j206q042dg2.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用 matplotlib 显示图像\n",
    "Matplotlib是一个用于Python的绘图库，它提供了多种绘图方法。在这里，将学习如何使用 Matplotlib 显示图像。可以使用 Matplotlib 放大图片，保存图片等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:22:56.483057Z",
     "start_time": "2019-01-26T16:22:56.282175Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAADuCAYAAABmtP8SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzsvelyYkmyru2AJBCD5pyqdh8rO/d/Kedcwdm2rfeu7qwcNCBAgIQE34/8nuBZroUyqyoHVTduJpMEa4zweOP1ITwaq9UqtrKVrWxlK39emj/6Abayla1s5V9FtoC6la1sZStfSbaAupWtbGUrX0m2gLqVrWxlK19JtoC6la1sZStfSbaAupWtbGUrX0m2gLqVrWxlK19JtoC6la1sZStfSbaAupWtbGUrX0l2fs/BZ2dnq19++eUbPcpWtrKVrTxP+b//9/+er1arF5877ncB6i+//BL/5//8nz/+VFvZyla28heURqPx319y3Nbk38pWtrKVryRbQN3KVrayla8kW0Ddyla2spWvJFtA3cpWtrKVryRbQN3KVrayla8kW0Ddyla2spWvJFtA3cpWtrKVryRbQN3KVrayla8kvyux/19B8h5ajUbji85ZrVbRaDQeHf+56/H9U/ep29frS55rK1vZyvOSfwlABey+5Dj//hJwXK1WsVwuH30eEY8+z98/9Qz5uE2fb2UrW/nryL8EoG4CoMwsAUiOz4CWj+d/H+O/l8tl5RqfA8LVahUPDw+xWq2i2WxGs9msZb2/h81uwXcrW3k+8i8BqE8JgPPUdtkG0+VyGcvlciOQ5utmoN4EkPm7LwHRp5g3330pO9/KVrby7eVfGlDrwNR/Pzw8xHK5jPv7+8rP3d1dYZIGQDNY2GWz2ayY/q1WK1qtVmGgzWYzdnZ2yo/P/RwQ1gHmFjy3spXnK39pQLVPdBPz4zOz0IeHhwKcs9ksptNpTKfTmM/ncXt7Gw8PDwVQOb/RaBT2GrEGzohPwMxxOzs7sbu7G3t7e+V3u90uP7u7u49A9ynmmt/P75TbYQu2W9nKj5W/NKAClBH1JrDZ6HK5jMViEbe3twVEb25uys9sNovb29uKX9Sm/2q1ivv7+8JqW61W7OzsFIYK0DabzfLd7u5u7O7uRrvdjk6nU34A1na7XYAXoAVk8zs+FbRyO2xlK1v5cfKXBtSIzb5IAAaT/vb2NqbTaYxGo7i+vo7xeBw3Nzcxn88LUCI7OzuFyQKWsNrFYlFAd2dnp7BUjlsul4V1wkQNnjDVvb292N/fj06nE91ut/xtFpvdAk/5S7fsdCtb+fHylwfUiM3ReljpZDKJ0WgU4/E4RqNRjEajmEwmhZHaz9loNGKxWBSznx9AF5BtNBpxf39fAXD7UvGVwlYXi0XFh7qzsxN7e3uxt7cXvV4vut1u9Hq9GAwG0ev1otPpxO7ubjnnS3yuW9nKVn6s/EsAKgKTXCwWcXd3F4vFImazWVxdXcVwOCxmPay0zpz33wbQOp9qDnbVpVXhq727uysmvQGy1WoVttrv92MwGMRgMCistd/vx97eXgXws2wj/VvZyvOQvyygGtwcaJrNZhXf6M3NTVxfX8dsNqv4QLM5b5PdQOsAFWY+oJifAd+nnym7AjDl/Q6tVitubm5iMpnE9fV1Mf8Hg0EcHR1Fv98vLHZvb6+4GXyNrWxlKz9e/rKAGrFmljDS6XQa4/E4rq+vi590Pp8/MuENcgCo/wYwI9apVRGPc0+RnGfq6D8/+Tzuxb09IeAm6Ha7MRwO4+DgII6OjuLk5CQGg0F0Op3Y2al23ZalbmUrP17+EoBax8IeHh4KiE4mk5hMJgVMR6NRTKfTEkCKiApowTjrTPSIKkAaXEmdAjTrVmCZhWbGSoBqtVqVjAOu12g0yvNFfGKtd3d3MZ/Py/tNp9M4PT2Nw8PD6PV6JXjF+/lZv6Q9twC8la18XXm2gJpB1EwORoo5PxwOH6VA3d3dVVhbNu+ROtYJKCIAVU6P8vf+2/mlsGgCUbu7u8W3Wpe4n7MTbm5uSr7szc1NjMfjODk5iePj4+j3+9HtdmN3dzeazeZnV1Zt6wVsZSvfVp41oHo553K5LCAKY4OVkv60WCzi/v6+gJ5NajPQnOtpqWOlgGuz2YyHh4dKUr/9oJybAZXPd3d3y318De6zqQ1ub29LgA0/69XVVRwfH8fJyUkcHByUVKy6bAC3QX6/rWxlK19Pni2gRlTZ2nw+j/F4HFdXV3F5eRmj0ahE7fGR5qBSXXQe9mlAzb5Toul8DljiC8XHmYudAJDZZcA5rVarAmx1UXu7CRy8whdrYB2PxzEej+Po6CgGg0EcHx9Hr9d7lMPKc2wqQbiVrWzl68izBVT7FefzeYxGo7i4uIjLy8sCqA8PDxUf5lM/zv+079F+S3/Pd6yKcpCq7lkBzDrT2qwwLzXlnM+1g+X+/j4mk0lh7FdXVzEYDGI2m8XLly8r2QCbAmnbINZWtvL15VkBag6WwEyvrq7i/Pw8Li4uSmL+dDqNZrMZ7Xb7EdvkGjm9yevsDagucELgKOITwOL/hOFxDyf128x39D6DKC4DM1u/r10RTrVyoMu+ZNwcuAFub2/j7u4uzs7O4vDwMLrd7iPXxFa2spVvJ88KULOJS1L+x48f4/z8PEajUczn84of06CZTXuDU8QaLEmSj6gGnGy6cy4LAAxId3d3hc362PwMXD8HxxaLReU9dnd3K+4It0cdq/U1CXrNZrP48OFDuTase39//xFz3pr9W9nKt5FnBajIarWqgOnFxUUxcSOirInnWBibE/AzAEXEIwA0UME6uSbCNc1ob29vIyJKIKjVapVzIzZXvCKwRnWr1WoV7Xb7kbsAYPViAbsv/E5+3ul0WvJyCc6dnp4+YqpbQN3KVr6NPCtAdVT7+vo6zs/P4/z8PCaTSdzf31dYJea4E/frwDSiyljNRpfLZXEDLBaLwvYIGFFU5eHhoSz/5DPyR3d3dyuZBQSsHCAj+MREcXNzE9PptKznj6imdZEGBfjXuQjMzH2v2WxWruNj9/f3t9H9rWzlG8uzA1QCUJeXl3F1dRWTySQWi0UxsbOP8SlmGlE1m11qz6yTiD35rQ8PD9Futwtgwz7NMgFZwA72DOPks9VqVdKZ8AlPp9PiNoCd+hqcA5hmUz3XYiV4xjsuFosYj8fx8ePHSgAO8597bMF1K1v5uvJsAHW1WsXd3V1MJpO4vLyM4XAY0+m0RPINPrDE2WxWmGWdP9WsFMGHCePlO18TAOQzAzqpS7m4Cs8ZESU74e7urlLqj8/4HIYKQzbz5X2cBuaqWPa1MknklVqz2SwuLi4KmJ+cnBTzfwumW9nK15dnAagAoCPWk8mksECOYYuSxWJRWB5pTZjaEdW8UtinmR7+UsziTqdTzoGNOlC0WCzi5uYmIqIALNWsCCxZzKLNnAHU+/v7UmUKRmsz3eyb48loaLfblTzZiPVOAdzbixF4bpjs6elp9Hq9Si2AbTrVVrbydeSbA2rd0kqDjINKFIG+ubmpBH4ajUbM5/PKaiivec+V7r1CiXvmdKqIKCY5YNzpdCrX73Q6sb+/X4pSA+CAKc/j1Czux72yu+H29jbu7+9jb2+v1DyFCROkIhMB1j6fz8t7Ov0K/y4A6vf1s9zc3BRA5dhut1t5xohqytlW/nUkZ548ddwf6fvtkua1fBeGmsEtf0dOJcEaUopgYq6W7wAU5m9Oj+K6ACkAaHOZ4iMw1U6nE41GI+7u7ko+pyvnmw07ZclVqyKigHH2q2Lqw0IpLv3w8FCW0Tabzej1erG/vx97e3sF8BEDn3cPoA1yHizH8tne3l7c3NzEwcFBdDqdijvEE92mvtvK85O6hST+nf/edI26az0l24Ui9fJdAHVTGlHE2pSn9N50Oq1UTqJAcy4KHVFNwt8EprDCxWJRzsHcBqDn83mliHNExHw+L+vv7WfFvHZgCIBbrVYVxgnrpMIUoMyWKDs7O3F7e1uKuxA0arfbpV04H18rrhEKZfOudSY8wSraDAtgOp0W9u2JIUtdXu1W/jXlzy782OrHJ/nmgJobuo4BsT6dIBPpSI1Go3xn8zbPjFzX6VQu0xfxuCJUp9MpLHIymURERL/fL9eez+exXC4rQRzYpf2VZov28xLgiqhG/nEx4Bum/OBisSjr8FerVfn8/v4+ut1udLvdArRkCnB9/LhkBgCSfv/lchmz2SxGo1FhwLmWwFPuma18f/mSyez35hRvMs/tgqu7x1Oy1Y+1/NCgFMwIxgWY4jf18koYZkS18808ATjK3ZndcQz3xIeJuY15DeOFYXIfsgu8th9AbjabhdECruSbNhqN6PV65b7cAyZLucHd3d1ihrOZ4GQyKTmpLCCgMApl/Yjqk7XghQA8L+0yn8/j+vq6tFWr1YrBYFBh4Vm2g+XHyaa2/6NWg017/+Zam+IAddfZ6kW9/HBA9Z5LmMOAAit/MH2dZ1qXpM+xgBQ+SQI9jUajZAdErJPwyTdttVpxeHhYMfsBKUz2+/v7wjjJJCBo1mq1otPpRETEbDaL8XhczPp2u13MdADu5uYmRqNRYaH4VHF/3N/fV9rj9va2FNG+u7srTD4vf42or7RFG9OWXLvf71dANQ+m7eD5sZKBblP/ZH844nFj//9T96ur+1t3/62OVOW7A6o73cWiATki3IAov51T6kh9xHp5KIyR+qh81+v1ijnt6Hyv1ytMDRDDbMZEn81msbOzU1wDJP13u90SyMKc3t3dLVF8gG93dzcGg0E0m80YDodxcXERd3d30ev1yiIG3nu1WsV4PI7Ly8vy3Pv7+5X7X1xclG1SvNcUgOj0rxy1944FWAJOxWLi+D3V/7fy7aSOMRrQDI51rhokm/abGGYd0GYArrt/Bt1/Z/kuaVMR9TNYNveJWGNO45ck1ScXDslbPdukhunhfyUliZxSm8yA2WQyKWYwLBLwIj92Pp/H/v5+8acC5Dc3N9FutwtDZcvqTqdT0pY+fvwY//jHP2IwGBRwn06n0e12o9H4lIg/HA7j/Pw8ut1uHB0dFdCnTN9oNIrlcll2RoVdRkRpQ2cdwLYNqrzr5eVlHBwclKj/Vp6f1LHROsZaF5RFzCQzw8xs05MyYMmikXwtP9dWPsl3Y6h1s6gZqqs64QYAUJ2s7tShnD6ErxOWC3hSoq/f7z9aGABgNRqNuLm5qfgcAeVmsxmz2axEyMkjxXdJlgIBo4goQE561sPDQ1xcXMTHjx9jMpmUPNOIKG6Bm5ubeP/+ffFz8jOfz2M4HBb3QKfTKQyZRQFMSrm2q/NzvdDBfl6v3KJvtvI8pC4Am906jBdWFnrHCl/DgUpntESst/0BZBlLTjXEvbQp53kr3xhQP9fYMFRvpgfbBCAA1Ij1iiDYKea1t4fGj9lut2MwGJQFAQajiCifL5fLkq5EDio1VheLRYxGo5JI7xQkQBQwms1mJSsh11flfGcxXF5elncjIDWbzeL8/LyyAwGV+S8uLmKxWMT+/n4cHBxEv98vkwZgzHmY87xXrqvK5IbvmAyKuoyIrfxYMWjaEjOQen81UukQu24YbxFRgrI+LgMqS6M7nU5Js8NFZL+92S3//7vKd18p5c9d3MT5kACbKyYhsCwzVswUclXn83n0er3odDpxcnISl5eXcXNzU/yKKBzmvGfc29vbmEwmJU8VxslszSxtdwABH4JKHAuodTqdch22gIaZN5vNEryCAaO4sI6rq6u4ubkpzJTi0V4QUbcxobMJYBlmoTBVJi8X3n7KD7eVryu0tc13W1/kDzP5eet0fkilcwDXVk7EmqzYkkPq3AJkl+zv78f+/n7x15PCB3t1XnaOdfy7yXddKeXBbtMeBgXrxFzOgZWcX0kSPKCGUrFx32AwiL29vej3+4WlktTO/a6urirLTAn+tNvtR9X8AaeIKIzBOwDANPf29qLb7cb9/X30+/3CPlmTT+DLkwMDptPpxNnZWezv7xe/7Xg8jlarFQcHByVIBZiOx+PCfGknTH18YM4EyIyFa+CL3eRL3abK/DHZZKUZPM00SddjtR6fsYqQSROGaleZAZMx5WXMHE8/2mphbME6nXPNxEy2DBYgY4b/qQ9s4mGXk9/7XxVwv3uU3+DqhHjXN51Op4Wh2lzF1DfQsoSTQJRXHk0mk2Ia46ccjUZl++XVahWj0Shubm7i7OysFCvhfBQBlwQAGBFl1kfRWCxgQCV4ZF8Vk8D+/n5xUezt7ZUUqaOjo3jx4kVERPGbsjSWIi7j8biAoQu0oPiwYxTdJfzcDxGfWPr19fWjLan/FZX9S6UukLopXWjT8fk8W2SuF2Gd5zc/jA383SzJziUss+XBGGGMsXW5C+3Qx2aXFCNiLPp5/d4AtVkrgOoxYKB1TeDPWT5/5cn7mwJqHSvdlK7BsZg4zMR0Pik9GVCZYff29uLg4KB0GMWpP3z4ULZZRmlIuIcdjMfjaDQacXp6WgkQcU+CS4PBoDJLr1aripkMuAO8mEoA/mAwKGY7QSUCZ81mMw4PD+P09LRkFRAkQzmXy2VcXV2VIJcZMYqbAdVLVr16zFFhCtKQwWBG8VSazb+iuFIZYjCMWC9fzuCwKfDq1XMsJAEgzUSJJ8BKnb7nXG2zSFt3Eev+yj5/E5iIKCQDt5NXGTYajVKcyATIKxVxW6G/sFGKDHU6nej1enFwcFAyUiAen9Olv7Kufbelp5saKTNPB5nqTBKUC9bIjElnsiqJfZYIRg0Gg3I/lIXnIphEQZS9vb0Yj8dxd3dXyYltNBrFxCEH1QML8CIotLOzUxL2Dw8P4/Xr1+Ue5Jjihtjf3y9LXxlwBAVgH+PxOCaTSUyn02i1WmV7E4AbkGaweHmpzUNPSBFRsQooIvPvGmR4Kp/TQRiDlc9xHjC+TdL0YJ7043w+rxTM8bJhSjy6lKOfi3sBgL6Gs1SyPxUd4HiCpOgMesHCEQcwnUplsx0mzUREYLjT6cR4PI7Dw8M4PDwswArp+CPy3Cf3H7JSymYQ/zOD1zHTunw4Rz6d/I+jvdfrxfHxcfGtOgqPHxRGCQACpsfHx8VHif9ztVpFr9crSuF6qbAEVmXZvD44OKgwRp6DlCfAHjYJi8mTA2wGX2yn04l+vx+Hh4fFt0owyxMR7ZvbPiIqg/epQOC/k3giyaBpwMtM1jnV9BPLhPGDEzTlOxhnRFT8nRHrAFJEtRYwz8LneSzxfQ5wAajsRGFi4uNdk7fZbBY3AWMPJur7Afy0B8DsDJTxeBwnJyeFsTLx/6tN3N8VUHNHe6ZlWaZ9pnZoO9kYswKfKWkj3sRvZ2enJMYPh8PiFzWgEbzB5wnDwzyZz+dlyehyuawog9ORYAP9fj+Ojo5iZ2en+E4p5uyCKQwiBpiXwN7e3hZ3we7ubgk6kcZyeHgY+/v7cXx8HK9fv47j4+MSqMr5gTAHni8vJ0SZHTV2+tS/egBhk2QmtokVARpMeKQuUTWN1DznL2NW28Link7/M3ga6CKi0s9mi55EN0XtsajMXh3EtI4AqCyM8X0hMTnpP9fUcL7zZDKJw8PDODo6isPDw+j3+5VVepv6wfLc9fCHr+W34zubP2YE2Y9FMMjr9Nk2hQ3wAD5mfkfrbZ7v7e1VzBEKMC8Wi8oad5zwZAmg9Ahmu1mizW77wggGNZvN6Ha7hbXAMp21cHd3F91uN05OTuLo6CgGg0F5XoA4+8wiNpdN9KDjeO9CkBntpmv9q8pTgRIYH0BxeXlZtjeHiVEgHZaJBWBG22isayl4dRsTYfaJ5onNi10MjD6e7yKiMqGaSeZ0Op6Ba/G8DnoC4oBmvib/O62R3Tiurq5iMBjE2dlZnJ6exvHxcfR6vUqlNM53u/9V5LsCamY+GSid9hHx2DflNCvnvREgQsFIcudYAAdww9QnmIMpD2s1iOIPIlJus9oAj8nmhHqUyUEM2Ay5p/v7+zEej+P8/LySpgVbhzEPBoM4PT2Nw8PDcn8GMSaZV4vx4wFjJpL7xcHAh4eHykquf1exjjqIiSl/cXERv/76awyHw2KSewvvrN/ZH+tga3Yj8LeXEWeXA3rKdQE/dKDuPTjXx/uZ8t+4q5rNZoW85DFrCxL2DWmJiDJ264JyZ2dnJb1w0yqsvwqo/pDEfvuo3CE2TW2meDZ0XVQrh/2S7Xa7rKVnPf9qtS7lB5DCKB2F9PeAEoEowJHZ1MqOIgDYAChuASsJwN5ut2M6nZZN+litRdS/3+8XHy+ACGt1mznIBJPgXWC7tBE/eYDhbvAWLbm//h2kbjJnIiSifXV1Fefn5/Hx48f47bffSpYIJrWBzRO6gzyZSLjUopmhg4cGG+d4OnOD53dCv/XUbNjvy/jI7YD+R6xzUtF9p2AZpGkvEwqE2MT19XWsVquib2dnZzEYDIqrq46pIs9ZH5+FyZ+Xj6IgbkQDB9/B0Khb6hkUUMH/ia+y2WwW0x0/DhHyfr9fEtx9LYAJsW83d7SzEnjuHAQClAkkwX5Ho1FJ4ifBniWruAgcbfUGf5hbuDe4h/N06wYMYreL827/3cRBHNw0BAqvr69jOBzG1dVVyRGezWYVKyWTAABzkwvLftjsp8xxBJv06JotJZMLFw/3dRzFz+OLc/ltqw895l2dQlbna+Z/L4d2GyyXy1KH2G4RXACMvecMnnXyXdby58HrRkfhUCrPtjZ7EJtJdDqm6nK5LGACo0XB6cgMNqyNJ7WDIJIjroCVTbGsHAwa7s15TlXJ/jMGD+YUrofBYFDW8A+Hw5IqxYAjqZocV+4DA2cyyMsDPdDr/HLOnPh39J1amISn02kpu4i/lJxdb/udfZSZmXoCdkDI7WydiqgWTfcS6Rxxz+OEidN97UI5+P6xpngO6yfHWU/sukIMuFk8vusYPO1D/QoHaM2w/0ryw9OmANPsiI9YD3BXUDLzg23SmeT62QSm8w2SNil2d3dLQj1LVQ28XANQZeBYwQ2YHjgGf85xG0SsfbQoN6lQHz9+fOTwb7ValWRpwN/KDrDymzbLjNnmf3bB2Dr4qwUFvkQ2mfU2T29vb+P6+jouLi7i/Pw8Li4uSvDJq4gyO/Rv+r0OcA1gBhH0BRCKeLxE1IBrIOad+HG2gHXPKVps8ZNdAfb54w4wqcjZADmVKmLNYvNY5Dzaha1+IBa2Dv9qLPWbAaoHZV0QxL6jnGgeERUzALMgKyvKxIohK4VNGCsmq45ggyy5JNgEQKHgnl1zkMmKjfC9fZV1SoGy873v22w2i5lJ+UGCVDBPMhJ8nmd2MxL74zJA1jGdbMZlNlXXp89ZssslB3nQF96ZurS//fZbvH//vmxH49q6WR+4T53pDehaDzJo2mKxf9wTpV0wbn8me7Nfs1NP8ta1Oj1wtJ/3yjrk92PCyOBHm9vNwfkWQJcl416qyrLxTAqes3xzk7+uITxQsxLyvX2rACu+PfulIqKyHtqb/KEQzNJ0Vq/Xi5OTkzg+Po7j4+MSYXRBB7NYADW7HgzqKBfH2xVgZcrRUcQrmcwYnYTt/aRGo1GlKItXSsEmAFyvNOP5/F4esH6fz/UtsunY5+Q2yD75OqG61+XlZVxcXMT79+/j8vKysNIcqY+IymCvi8hz7zqTmOOsPz7Wk6LHUV17GjQ9rgBtnt1M18dEVP2h9um6uMqmtrXeeGzUsVQDvyey+XweFxcXxep7+fJlHBwcFLfWJjx5TvLN1/LXBTayqWWgiXgcyLFZ487z+ujr6+u4ubmJiIjBYFD2hsJ/hGlNZP/g4CBOTk5KKTyDqc39Olbgz+oc+zaX/QNA4i9CAb1tC20xGo0KM+KH6H6r1Yrz8/MyQNrtdqm8T/oX74qf1f43A78Hq1m13/cpBf4S5X4ObgP6wGACu4r4NKGNRqP48OFDfPjwobQ/QSfOjaiClwE04jFzzCwwolovwL5tr83H4uBZfa1sPWSfvYHZLDiPKT+L28lEgOfz5F8nHqNm2vbDeoxn4Oca7ABMLYO63Xl/tC49Jd8MUD/30hlUc7oUpknE2qRx+byIKMV0YWSNRqOsuHJU3nsnEeF30Yacz2dzKQ+YiKqfzM/s/7kOx6FYEVEpqg0rYgCTbsLKEjMF0sJQcG/xwj1YLsvuBDyT0114tgwsOX2tDhA+x/Keq2RmY5MbMH3//n28f/8+hsNhJYXM7NLBkrpsFK7N92ZtmUVGPA54mknyYzDzNfidXU+8a527ypNmXj2XA0YZbDluE0Db2nFbZH9rvq9zd219DofDwlDR/ecu35yhbvrcHWtQMq23j4rOwCflYso0OAAzn89LcIlOdhTeK6VyEIAO92DxM1nRnO7Ce2V2CtCxJjpiXYfUhTKIJlO5xzM8ATuKqvR6vYhYB+FWq1XJN727u4tWq1VA28VOsj+Le+TMCvcH71IHpk9NmnUg8yOYhScMAwE/5ER++PAh3r9/X5nEfI1N75DbLVspmyLcZogRUWGquBesB9ZBT4zZFWDwRL/zIhP6Mk/8EWvAdvDJQWGu53b0c7h9sh7lY4wBxEm8o8bV1VV0u91oNptxenr6Ra6oHy3ffaVUnUKa8ufv8yCwP9E7pVKiDuCykx/la7fbZRZ07quvb1aZXRERUclIcLqWfV1cD+CHhboYxmKxiOvr67JtBdutkCSO6c4zet8sVljBQmknF32h2EoOZmRznnfOIJL7o46Z/l6QfE6mPxPi1dVV/POf/4x3797FZDIpz5j9oZxrgPGilLrAagYTVqDlFWsOQOVJPfvuuRbi6+RxxHc51YljGDPZyuK6XhhgQsME7TGSyVHOgOB5MknhmramSDVk12D0Pfv6n6N810366gZl9udl34qj/a4XiQ9yb2+vMA1HqtmI7+HhobBVqk5NJpMYjUZlSZ0LQDN4uB/ACdNw7UrcC05NMQsEUCkO4WIoEVGKtfCOsGsPBgJkPMv19XUsFoviM/VSVPu9WCnliaVOCXlOm5g5CFLXb/5uk3JvmkC/52CgDfMzMIG9ffu2LB/leOsdLiWsnDqwMKDaooqosrRs5rsNnYfp4Jevy7HZFGfc8D2/syvKgqXGZOr0xJwy6Od2hgtxDI9Xu8r8Oefb8ooU5bpJAAAgAElEQVRY19XAqnK7URAe8kDwtS4u81zku0T5+bvOtMgKYiWoY40R64Rkg9ft7W0MBoOyHQgg6y0jvHQQ4Li/vy/5pTbJATeAmaWhXoTg0maecc2MDbwkg0dEUSAU2hv4NZvNwmgp8jIYDOLu7q4k+19eXsarV6+i2WyWlC+vkqqrPuX2tx+Y5zF7yv1ok5PPIj7vV82M2J/lz7+V5Da4u7uLy8vL+PXXX+PXX3+Ny8vLyuaKTtOjXQBKV1mytUPh5tz2dqH4Wkxi2fWFD53ntm5l94KZaERUwCgHgHLaFtercwUZODPzrnMVcP38eQ4A8s4+3szXPmAHbEejUVxcXFSWgD9X+W57SlmyL8Vs1GZHxHo25zybuF7Zs7OzEwcHByUwY+UkUgjwXl9fl+uzbh7WGRGlMg6FR8gFJdBVZ+ahaDkyafcCwImf0/5dAJUVXHd3d3F1dRURES9evCj7TFGs+OrqKlarVdlmImJdgctJ4hHVhH23rc07Vlh55QyD0GCawfApMM06sIkhf48BwrvjavnHP/4Rf//73+Pi4qLCDB0gcbDO0XOb0XXBGwMC/0esq+RzXqPReAS+1iNfL09Ibrcc9Klz3+QJkbbgvXjePKn6eAO0dSRH83l/kx6PW+uSMyj8LNyf/mq1WoWpbir39xzkhwSl+C6Dal1wqi5CiR8VBkon9Pv9aLVala0liHDjoAc0Iz6ZU8PhsJj1PNfd3V0Mh8MCzLPZLCI+Fa22Twsl8cAiGk9UMkeCSdKPiHIMzCW7DiKilCNcLpel3sBkMikzPewX1wBFTXL7PsUQcRFQIAaw2MRKfZ1NffwjwbPuvgbT3377Ld6+fRsXFxdxe3tbyfIAzAA+nteAYevKLpIceMoWmaPctsR8Dv2a2ymDavZxRlRdTr4/7+b3smlu8IS85MkF8Mv+y2zq8+wsfwUkOcfPzKTC5OXgKxMDZCni0/g7Ojp6VFvjOcl3Yah1zKbOX2cfaETV/DfTy1X3vUoIE308HpdCvzlgBKihCJjuXIvyeuTCsR2Elc8uAnxgdD6bomWWwbF20nv/HfaQosrU6elpTKfT6Pf7cXJyUgD14OCgpEcdHR1V6qKyksftvKk/+L7dbke/3y+1XvPKrzp2mvv1S32lPwJU6Z/RaBTv3r2Lt2/fFisFRh4RlYnEZeq4hv39/DZwRFT3t7cum+nB3hBfN6ccIbY2OAYryIXEcyQ+ExIAFVbouIXbih/6y+y8ji1ncx/iYxPfk4bdCrjcKAKERWAwx7K8vLwsqVTP0fT/pktPIx4POiujTUyEQe5OYrZyFSTvnZRnVToLJzamCv5S+5goCYhy3d/fx2QyKZ/VFUiJWJtAgKNnYY5n1RIMlg3RDg4Oiu+TaletVqvkk7IUFlMJBsnOri9evCgzuRllNjXtu8rpXTZDYacunp2ZbZ1p/6Xm/ufA9muArPUl+wNXq0/+9MvLy3j//n1cXV0VVm8fnwMx1oc6i8k+wL29vUdmtwHG0WnO8b3sY7Xf29kl3NsBVJ4dSwggwloB7D2B5/P53j8GyezrRbJbLk+6PFN2jfE/YI3+MUbI/XVtD9jraDSKy8vLePnyZalB4Pd4DvJdq015cAIobhh3Rh4Qnn1zAQUYp3cDZZfR29vbkuuJr8zMg99ckyyAiKiwNS/B4z2cokUk2HmuVI4CLAky4VtCwb3EkPOd0mKfnRXNFbFyG2fTqq7ADP+TZsVWKm77zE7qZBNT3dT/dcf/GVD1xAFwOAhzf39finhfXV2VICPviLitzfBylDq/J9/Z9+dnoZ9tGbjt7E/PgUSnEhkQDX7cw8+fwTLXesiZCX42TwDZj85z1a3q4n6AfESUrBj3BWmEnIsvl7RG63jEmijNZrNidZLl44mOZ9ukY99DvmvaVO44ZifX9cwDzExqf3+/zGoAGEEoAkgAQ7P5KVJOzUUq62Cq05lOv+L69s9wXbZpwPyw8hGF9zJPagZwHgroIIQHnCUzpzzAuLfNUM7z+ZwTEY8GqpkS7Umbmu35Gp/rW/9dB5Cf++yPDgCbtBnwCDBeXl7G+fl58Y1zbGZkzpKgf/MApz1hVfSjgZh+o53d137OOveM2y+DWAbKiKhYTll3MnPeZA26/XgPj0nawO63/IyevBlTWFUOPjng5KI/kI2I6pYtfrblcll253W9jU168b3lhwWlItZmcb/fL8GhiOr64pxywqyKWeBNxACxdrtdPidCDxsmIISSEIwC2JfLT5vxMZuORqO4u7srBVS4b6vVKr4cV/13UCizVg/crMTMwt43PSIqK2YiqhFeswuEdsogzXMAAvblsUEhk4FBGvkRvs/PiZ/JDIXPHx4+Lc89Pz+PDx8+xHA4LD46r0yy+8aD2AV2slVjgLR+GhQzS3JKlZ/VFkH2u+f/zfrrXCcGXc6pc1VZ/3xf3AWZpdcVH8+ThYNLnpyazWbJ5ebcdrv9yK+aJ/Q69wNjmhiC2/I56Od3Wcu/ieFg9g8Gg0p1/Uzb6Tic1w5QoczkYsIoaHSAj/w1/Jq3t7dxfn4es9msJMcDXNRFnc/nJaJODhxRYfZ6ovyfU6WyiZyr9BiwUHaYNsrohPzsv+MzZyxw3UZjvXOB294pKbQtg81bUPue2YzKkvvpRyi072t9aTTW2Rq//fZbnJ+fl9oPnpzM2hx5zuAXsY70c2ydicx3EVWA5Dgi2Nzf+p4tC1/fLiGDIiDKhBxR3aqEcwzEvme+dkRUipZzDBYMKX8u3p6Ll9AGgKjTBheLRYkRIDlGQHTfY59MHCqtEazN7sKsA99bfugWKDDUg4ODEuV2oMeNE7FWYhQoIipbiUR8MtHZ/TQi4ujoqLLlNKlP5+fnxefKNiTMsHt7e4V9jsfjWCwWxaQH2EjhIC/O5o6V14ngEdU12/48M4c6k9uBk7oggpPCOcemk4N4KKkV3oyBeyB1prr//pIJ9FtIZmM2d29vb+Py8jI+fvxYCs84KOPzbD669CHAYkvCOuljbGYblD0Rbhrkdd9zDXSOZ0cH6lZsRTxeLRWxzi4AbOvqUPg5/Td+9TzB2qLkOdw+EBpfkzbiWczuceFFrBmrn2+5XJaN/sbjcRwdHT0qs2lGm10c30N+CKDaTANQDw4OSpWfDCoeJPbDsIoI9klACbMOBhkRMZvNotlsxmAwiIiIq6ursv3J8fFxMUtWq1UlFYvruzLVarUq/lEDsWdWpC51JmKt7M7hi1inwpjpcq6ZRlZgPrP7IGK9zURelgpTv7m5ifPz84j45NOi7KEl+6qeYqz5uG+l0JlpIgxcFmRcXV3FZDIprh6bsvaLmmX6mMwe+S4HdCKqy0y5Dm6U/H3+P/tLs0vIE511wtYE4IXu5ug93/l5ECZWjzuuiTlvS8lMOf/4WMDTk4v90nYXuLYG4GuCxXEUFrq9vS2B1KwbP4qlfrc8VP/25zs7nypzHx8fx+XlZalpavbmmZEIuhWHHDYGDmYsFZhYhUQBZjb1Oz09LWBO5DCnStFhvV6vMGEYzWq1KvUCsl/KbCWimqxvpo0S2deVv+N8ruEBnFkk5zvdh+tRTMZLbAkMUHP15cuXcXx8XMz/7Iv9HPv8Hkqcn8GDh/dnyeL19XXFf2fwoV2yH5b+tH/QIGvAchtHrIN/6KlXR2UGZ5IAWPh9ctZAJhoeF5nNZt8rYn3xpIF+GMR8vbxNEW2SU6MM9ritbCExbvDF5m16cgAQHfWYoz4GAS3ul5nqj5DvBqh1YArb3N/fj+Pj4zg5OSk+Eq+NzoDqYiD4VQA22BdKwHfkpEZE2Vb64OAgjo6OYmdnp7gISCEizxWfZL/fLwBtkxLFiKgmdbtTPTnUKUtdJN9LYXlX+7uyaca53CMPSgJ6DuYhzPjT6bQUcHnx4kXZs8rXtmQL4kf4rBD7hwlGsTMpfmnAwuzI7M+RbPoy+yJtOdgMtpnP5JjZaZ07ZVO7ZjZroDTAA9K+N+8Z8dgvi05l1ssz2UUF08cKq6tbAaFhIvP4cDCW/30c+u+MAiY/H2vLy2lXs9msLMjJrpIfYe5H/GAfKsJGeWdnZ2WFkldp0DgAKgEXAjmz2SyWy2VZcdRut0veGrMYa94ZUJjzXuni/aa63W5ERBwcHFQi5AY8l+OLqA6SbPo6MJV9UdknlVeDOTDigWuAzeYR7BUTH+Xmep7QeJ+rq6tyjoNsZmp+J//9vUz9iPrsEU9iLDHF3PfExMBk0JKuY4sAHfMW3NlHuik3lb6pKx8Jy4pY10mta6/sQvB9uD6M1hO3sziyxcQ1AT9fz8/uSQlW6gUCJg9MHPbl54nCGSqch4457sDnAKqrULmWByBMBbe7u7uS7uj32KQn31q+ez3UiMerb5rNZnS73Tg5OSk1Qlm/bobqzob6GzRcjYaMgYgovlSilI1Go6wKwhyj89i8j8K2zNikWOW/c4DJ/h6/41Ms1e3jVSXZdMkuBLNHFM0g6dU89jt7hwMD8v39fdlTicAFgTdycH+kOVUnGXAioqyqub6+rq1Xm5kf11mt1rVmsVJgqM69jHgcjMqszEtXs14YMGl7nsVt62czQPK+nujMaM0mLTmaz/2ZZLinf8xWrZ8AXmbAWT+z/zi7HHK6mf2hdeY84286ncbNzU2ltKbb7UdZS8+CoTJz40s9Pz8vCfVmU3Qonfrw8FBYhM0GTNpGo1H8nizvbDTWqVOkanCtRmNd2NmBGFZEGVyJGJvxRFRXdlkxAbQcuPLg5n+zBZugVugcKOC7rEyualQHPh7MKPNkMonlclkqbr1586ZEVDf13ybW+NT/nzv+c1IHjA8PD6UWAyahGUv2ZdMXtKmZKYCQTXxPSjC5OsDMz1f3+Ze0BwDJ+22a3FzRCaCyGc/3fO52YdxEVMEavTCZ8T3sJ7X/k/zmZrNZ1ugzzpkgIDB2AxCwYhLKwT/66fb2tmL2M7H9KFMf+a6A+rkBtr+/H2dnZ8Ufenl5WQGrPONGRMWpjenKemAzV5S/0WiUzzCFrWgAr31JdSwxM0uYYa6C7lne55m9mLEiGTB9Hs/hPFyeI/vyPBFxH/vYnMxvhgcgeSEE/mb3Xx3reqqPN8kfHQSZcc7n87LzAcuR/Z7Z91hnAjNpenJsNpvF+snAnC2V3A5edur7ZrDNLiD3XQ74ZEDMOmKQcsDLx1sH63QcHcEFBLjyuX2nnliyrzhbZH4n2tlEoc6FxbPyTixDHY/HcXx8XCk28yPlhzLUPIh2d3fj6Oio4r+5vLysLO/zudmHSOfRCSiCo4MAED7UzDgYbPbh2txysCLicUUgmKCX5hn8rOycb1MouzXqwNkg4tSTOtPUoOcZHzayWq1Knq5ZHsnbLnrdaDTi8PCwwlRtQm7y2z3V539W3Bar1apUeb+5uSkD3MBAu8BkYU5YKwQzOc7+Z1fuB3Toc67pvF8HkSLWKWzun8yW8ySaJyi7DyKqixOsX26XbA47JmAgt+75eSAcWG3W6RzY8nhEx+y6sy+aoHKj0SjjnTGbyQHXYWwRcCbmMhgMNlpe31OehckfsX5xQPX169fF8UyjW1F8jgeUTVeA0mY5YFEXkKhjCigOyuGVLgZJrumZFIUw6OXnNUPYZK4YVA1YEdVgRURU2BffM+hzezkoYGbld7i/v4+rq6ti9u3u7pZqWZmR5YG3qY8/99nvFb8XAQt86J686Efebz6flyXP3vwwIgqoYs1wPr9hZwZhF6GpK0TiLAKzMdovF9vhnfJ6+IjqDqJ2C9k3zvnWZ1tMWa94jjyWmIy9Mg89Wa1WhZzkSYHzmBSwGN3GGZCXy2WlBKXJEv/TB9RENvnJFov143vIswJUGo1aoOSbkQbDTOfIIefUpXQYgM1aUViv1TawAbAoiPf7MXjanxRR3SnS16JzPTvnTjabybNsHkxcK5udNkd9Xf/twcYAxt+8CdCn02l8/Pix3GOx+LSnlX3IGehz3z712Z8x9/0b1sn2MRHVwiGAlgEOECRThF0TIqKslnPaUJ40AYWcN4zYkoiolrXLjNL9ngHE17IO8t60QwZSW3JmnmbSdcIz0ceOS9QF1mCW3o3Y4wWA5ZmzZWFAR5+czZAJTaPRKFk+BKbqVsF9b/nxT/D/SzZhut1uvHz5ssw+7969K/mjHoB1fqn8fUQVsEihyr7HzLYMqp65+d4z4qZAB8+XZ2K/s4Eup5lklwK/neRvkM7+QD+Tr+PEducCZuYZEWXVEcdOp9N48+ZNHB8fF/ZmIN8Ert+SKQBuLEvE9+u0HkCU9zZAABgsDOFddnd3Sw2AZrNZ8pxxLwAoDmKhL9S/pT9sZkdEBTi4Pm4Ju2QAFKwr2jLrtv3mm1wSuWqUdSaLfae5bGSdbpmM2IfrhTL2z2a3QiYhBl3An/bifbxRJs/6NSbrPyrPBlA9W6MIvV4v3rx5Uzrh3bt3lXSlzOZsavCZ/Wew01w8xCZTRNWvZXBgEHK8E4rNRFAoO9t5LitHRFSYriUPGCtGNhVRTBSN+2RfmoEWJTejYFDm945YgyrAYwZFucQ6c4t3qZM/q+wGJ0z48XhctuZm8NnnR8CSvz14SYdDP+bzeVxfX5frUATHbgRKQ1KtLCLKdWCsXtFnYMKl4iWf1iH+x4qIiALmDtTmcZDN3TzxewJ2v0c89t3nIBNi05v7whbtW/Xv5XK9nZBdBmbNWTdMRjJxoK1dBStbLd9bnhWgemCjZP1+P16/fl0a/MOHD6XautlcHQNAOBZA9XmbFBDQMvjBFHI+Iuc5+JSVIP9dx+Cs5BxvyazTSu/r25zDRLLpyzvjR8aVYgV3u3mQ3d7exnA4rJh5RNDzBPCtfKZ+B+6J2U7kl8Ic2XJwyUdWhsEw80oe8nJ5V2o5uG+yW8fv6P5wJXoDAjrjaxhgss/VgMs9AEOADKZMfxp8bcYDVvnYfN+ca5t1m9+QDd6Pvxl3vH/2L9tfbz+w78eEZEuSd2ZMGlA3ua++tTwbQLWYqbZarTg8PKwMdCpF0bAGwAxCEdXdQK3IZoE2s7LD3gC1SQki4tGqD65V97dZgcUzcvazIR4kud04z98T1OD6vLsZbQ5wODHbgA0Tub6+Lpul7ezslJKHBrH8XN9SmOzYrtvBp8z8WK58fX0dNzc3pZ5Ep9OJvb29knIHK/ROssvlslK/weY9wETEGjaKXtiPyrFcg+MNWHyXQbLu3dHFXH0JwEayLvl6tnb8zHbl8A7OFuE58TG7jKbjETBtFtQwTph8eXePp9VqVRi+XQbGCPexx/O/NaC6cewjZAY+Pj4uINBut+Py8rIMnIjNBVhcXcn38AyPYjihGGXwrM1sS54qz2qFZjAajJHMhs3oEJs62eSyuWY3gv2pdSaafcIAPoM5orpk0fVYYWPZL9dofMoDvLq6KkD8008/xcnJyaM81W8l2c+cn5HPeWeAlmRwtuOezWaPItmwqU6nExFRYXTX19ePzEuOp1g5wJHBkmsZKM1m/Tl9WLcMmPenvzNQR6z7vM7qsf/SYracx4fJivXdbrDFYlGyIrzE1gsL7K+nrercRHnsuK0YixznceT2+RHybAA1oj7CR2Pt7e3F0dFRAdRerxdXV1clAb2OsTl/kMitZ16ubTMwK5RNQAA1m/TZ7EBJ7JvFdLZpnH2pBkWuXadsTwnPmfek4n7L5fKRScX1bVJ5W237kO0fZp08kW7nctb53b625OBD/uE9ZrNZWarIflL0hX3J/qzV+lSYnOXK3iWX/vFCEE9SDmhmn192QbhfLLSh17RnX3w+1xs2otOMpS+peMXfdmnZ32vfO+ODz7im351+cFtwLlkVHJfbwjpPW3kSMWHh+tYJ+v97A+uzAVSbwjmQYp8fqSxs2/Hu3btYLpeVUl4R6yCU/XsZHOgYnNpmcQCHB52VEGXnf7sLUCLAOZs4zgLgnfO7cy0Uye4NfvsaGSh9Xd+bdmGAEWCyaQmj4zsKxVg5c7oRW9l4yeG3ljofs38z0U2n07i+vo7xeBz39/exv79f8k7Z2YHrwS7JrWTATiaTAoy0J3/jEmCAu7CNhXZ2Yj33q6uAxQRliydbKHZF+T7Oe/XKP4Md1oUXMuRJ3OANQTE75DpMXgT6YPqZCdsSMOD5GFtmHI9LhWf2s7v9nG/tZ/xe8mwANaLq38ksjUZutVqlSj6KvbOzU4pTA1ZeJRXxOIk4+4vsJ/WgQYkATQedNq2W4vp2+n+OfeYZuM4dkFmMTV2+92zPPb2yKw9AD/Ls12Ww2zeKP5YB0Wx+Wqt9fn5eJo7Xr19v9PfVPf8fEeuF/0eHaAcGORNEs7nevjuzd/x+pOHATGmLRuPTSrEc1MTstf/UwRmuj54BkmZ09l07sAIztdvJPmFbQB4nvl/2n0esFx5k15Sv63jBcrmsuIDIYc6+facadrvdChmxS8r9ZR2krSPWlarMqO1S4jMmjzw+foQ8G0C1nyeiOjMCCvaj7O3txfHxcVm5c3V1FcPhMCaTSTFXc7qKZ7y6aKaVzZFqjoOxWSm4NgqHgnpg2/dpP1nOgyWQgjj66uP8Ny4NsxaUjBQfm7IZiPICAQTAcYCN+wICnLdYLOLjx49lgAGspBEZOP13Nod/r75kIODaTpViiaLTm9AJm8QRUfEb43OlaPn9/X202+2y4wNW0Wr1KUjHVjx+T/sKcfkAtryzE9ZtueCTtZVmC8v9YYC1ue9iJwZYxkGdNWNmyziwC8Dtiv5BQHq9XukPWwu8u32f2a+b/b9+bo853Fme4D2Z/Agz3/KsANVMLzdK7gBMolarVczNo6OjuLi4KLtbujMAgoj1ihmbGXS82R6KnH1ifO9K8AZQd6rBwwAesWaJ9gvld89MNvuWMgtCscwG+C63syep7FMFfHO7G7DpBwbY7e1tJb3o5OSkMmm4XfnszzBU9xnvnFkfxVLu7+/Ljg0Rn4qME8VvtVqlBi8pPsh0Oq20wXg8rkxq1MXtdrsVEz1inbJGnzvQ6XaPWBcRNzD6+ewWygzULiyeywFGANTtnk1srs331nMzUf73WPJk7TGU/Z3oquMZMF3XWeDe9ukjHmdYXs7eyfJv60OtkwyydZ+TcI0ykztI8MFs0yZ+rpNphTGLYIauA6esLDbZbZp5kGTQy6zDCmQ2aVbBtQ3IzNx1TNfn+LPsrzaoOmXGzBaBCdEHmLrv378vJnW3262sj/d7ZUD5PeIBy7PZXCbA6NVPEeuMD6eL7ezslOOur6+j0WiUBH4AGT/4/f2nbcUfHh4q+8dHRGXZZY5C0560MaBty8UuKK7Le+ZUKL63nsKUzeQMnBRPN8BbvzJbtd+dz2whPuX3B+x4Tk/S7Xa7tG1OJ8sTt/s7+4jta8Z9kV0JP4KpPitArQPQus88gxoEyC9ko76IamJ7BkIzOQ92z/Z59kaBAFkPbj8zYtaRfTz2m3IvvxvPY+XxTGzzNjMQzCEGcDafsv+Kc3gu5xe6/c04HfEn8HF9fR3v3r2LV69exdnZWTH/c5960H0tYbUSAO/q7xHrFKR+v1/pT/Ycm8/npYIRgTjM/Vbr044OgC8mKqY5wRC7D7g+gOGEdlilgTaiWnWKvNJsKtNHXuUWEWVSo88jqjUuHIzMjNa6xFixu8LWTHbH+TeSJxTfx5M5n9e5szwO0FW7mtym+Xo/yux/VoAa8eWgSqc6ivvx48f48OFDWSLJwDKYGlytqNmP6g4x0HgW5LjMMjPDzGlYBj7n+1lszvuHgZKZgycH2KpTmDyI8sRiNupB5Gfxu2ZW76j1w8NDjMfjOD8/j8vLyxJN59ivwRzy+TyftyRvNBoVdmm2xxY3tNvOzk5Zl79cLmM8HsdqtaoEHQlINhqNolu0r9sxYg3cBDPNpFxKkmAZIMYEhn/S/WLgsk/UjJRnzUHJiPV2QdzfqUaeTG1Oozc5CGeLJ5Ob7Magf3he/M6+b44VWHwPwDSi6i7L7PlHyrMD1Ih4BEz+zH8zSw+Hw3j37l18/PgxxuNxJWKY104DNhHr2duszfcwGzSTy8w0O/mzovkaPtYuCPu6bDba/Mq5uQj/29cbUd3PxwPerNIMnfti5mcmYhChTQ28Hujn5+fx7t27GAwGZaVa7tevMQBs4u3t7cXh4WEcHh5Gs9ksa8sNELy3n5uVUhFRXASwW1aDRcSjragbjfXuDzCl3d3d4upgGxmAmH6HPd/e3pbMA0DbKUwO5BikYMNms/bBmt1aBxyZp6+ze8BsNfeTJ2KPgzoQ9fF2m6HvGRg90WeS4OuZ1Lj/v7b80Ws+S0BFNs1aCICKmca2KQyaiHXUMpvBOSUkM077kwzK2dFf5++0qWywshI7l9Hva+U1iPo4K7+fn3e18J0BENMv5+faPLQJ6PMwc2FRZjv2/52fn0ev14vDw8OSn/q5ifKPiCePiE/7h1FsmEg9QMc7LBaLGA6Hlb4kmHZ4eFhyUzm31+sVEIyIiknMpo7oFTrmYtR7e3ulnwDsXNAj+0QNsrSZXQpmxrS5jzUQc3+7K8x4TVAcK+Ba1t1s0fGZJ5kM1gjjNbs+fC8/lye97Bar05vMkP+o/BmAftaAGrEZVO0zxQcWUXWeu8Ny6oc7HmaXWWlEFSj57Y4zkGSz2udmv619nwAbA7suKTw/i8HL5nT2J/m+NjvrHPgGR5TZZemymQUIO3sBlwQBqrOzs3j16lXFb8m7uI9/j2xytyyXy5K+BCui+ImPp6o/pj1uCVY+HRwcxGg0itlsFs1mMw4ODqLRaBQwJIvBbWL9clqPAeDh4aGyW6ddBLSpWWLWPd49m/2IzX8H1Dwm6gDHeoyv1UDKs5hBeoLgnZ3CZOaYSUudTzVbdC465HHpd/A7PaUn31OePaBG1IMqq1cuLy/j6uqqBKFyEQknL7tjbBphanmA2G9qlpc7FxAycDolJeIxS2SwO5DBYOA969KN6j53G7kauqMHmcYAACAASURBVP1/XBtw5PnNSDe5EQz6tEd2lXjBAz8EqC4uLmIymcTp6Wl53+yP+zOS3RKAooGdycpR5eFwGBcXF7FarYqLYH9/v7gNYKmkRcFA+Z+VQM4VddtnhvXw8KlIOpWwrJO2eABV2tmTdUTVdZPNZAuMlWOxEOosHR+fGWv24Rr4DML5GQyOOV0ws02b/XW6YfeUwTRbW9kC8oTwpfJn9fEvAahZmOmvr6/j/Pw8Li4uioKTuI3iwTyfiijXmTR1YIlfinMiqgxwkz+HQW+Fc6qIFdhKkAeJTcEcPCAKDTj7vSKq20/Yl5Vz/Qha+DlpC5hPXt3jycT3ZYsRgoQ8n9nX1wBVT7j4MDudTmkLL+9kAmV9Py4dL1bo9/vx6tWrmM/ncXFxETc3N4XBkg3AzrDL5bIULAfQXaKP/qK0IEXSzWBpYwdvnOuZgcr6SvvluIAnPXYGxToxIzQ7xV1mH61Z9Cax1WTWif7wQ1/5d/7b4snC7QnxyTvUWg8yu/5e8pcDVBRkOBzGcDiM6XRaMbeyGWDndjYz7aPMQOpZ1YEez7IALv8beLIpyrP4PQwm9r3W+VgBIn4z+DHf/R423REGUx5w9jHndf4PD+ulmyhuTqXKZiTf47qgqhNl2zJD/SPKbkBGaEtqCdivWceMItZlHfv9fplsePbBYBAnJyelvipAS7tMJpNoNpsVq4Dzp9Np3N7eFgYV8Wlr7tFoVCYW0rvMePGpZnZaB2YGYhMIgmn2G2Oa0+duv+w+qLMimADQO2cEMGF4QkB//azo+1Puh3xfg7D1mx9IBEHBp/TiS/Xqz8qzB9QMYIDp+fl5WbWCQqEYEY/X12cwy6BnpufIu9mXCy/kVCg+41mzj8euBhgRyujcOo4D2GAfNg1RcOfjmbUwSBnwHgx2KcA4V6t1kRTeDwBmMGYz1GDN/WknKz9Bw/l8XpZtZvk9Sp/9bv6h/zqdTgwGg2i325VnNpOiP+0/dQpbo/Epwb/f75flzKR/AX4OzlkP0AVP8jllzX2W/dCZ8Vu3zfboR/o9M1vvh2VArbN8DIgG9ogoelJHCHJgKevF5/rRAJgj/lwXvXXGhQHVVbb+jNWT2fUfkWcNqHm2gfFcXFzE5eVlZeM+JHeomShKU1fZxwCF8uQAkmdzm0gwNwZHZrzZfPdMjrIABChvBtSI9brv7M/KA5DBg4ntylI26Xj2iLWv+Pb2tgQYeB5yJP3sBojs8qjrs5x/WOfSyH3vPrQ+ZAaSJ89OpxPHx8eFUQIyufAz7wbww+yc2oM/1ktr0Re7ExykYoI3MOBy8aRd144Z9N033M++fAey0FvXIjV5MMh7rDh2gA7wfrZ4DDa0aR1Z4R3MZDPQ8byehMkXBtDpGzPviLWPend3t/i9uYeZcJ0uPSX/FgzVHXB3d1dMp8lkUiKMEdUk4gxi/G/TyDMsTMaglFklv+uYRvZD+lg/n/M7vfaZRHAGHIPZZr6juTa1+Bzz0UCQma0nBkz4iHVUejqdlmtFRPEF2mcLkzOz4j0QGFHEJ5bEViP22z3FBDjOOpAHMwPWA5q22t/fj+Pj47KJIOl0Tivzck7XfvUzmEHe3d3F/v5+ifCvVqsy4WRgNBukX0ldcqaEJwOe3RMX7QxQGpQye+MZACGi/JjxZst1ExP3z89mC8rWGQw9u8zcf37erB/ZkuR8B0D9bEwcvi9lGPGXZx36vYzzz7Bb5FkCau5oOpUoKSaYFYjjMjNE4X3N7KNCkZ2EbcmzqhueZzOAWlk8Y2YT3oGC7B4wqJhR2Udlppv3cafwcfYf2tXA8a1Wqyy1JPBmF4FrV2bTMmc0mBE2m5+WdZKC5InCz5T7PH9X1x+5n7NPkdVQDtbwHu12O46OjiqM1An2dWayzWjaFKD0xOsIfHbjuI4A97RPGjAx+Nki4H0NYP7ePlf+J+/U0XCfFxGVe2YykhlnnjS89JPv3Q68h8HYjNz9b+B10JUMBdqIwOPh4WFx7WQd+VLXQ518KaOtk2cDqO7QPGsR1TeYAgR16RKZ0RhwbWoZDEh6ZpBFPE4L2WR6ZpOTcw2ofMb/XIvgQZ7Rbd6ZTVN3E6VnoBDpzKwhm4aYraT8sEuBS9u57bxyyM/tdvR7m4XiXplMJsU9Uweiuf18f7d1divYPOR5AEjSp1xhimtSnSwiSibCaDSK1epTTur+/n4x8fN2J253zM38PhHVrUvcJvbrAvKexHl3F2fOVapyO2UWxv0M7gbpnF2QLalsxiP29XqSRx9sSRn4DW52l3lsuX0cqyCST5BrZ2cnDg8P4+zsLE5PT8tKvNz+lj/LOn+PPBtARXKj4NMh2kpZPqdQZP8J16mj/QY0z7hWOI5zYrSDVlwXJXJifkR1vbWjoICnk5YBxDqmh5LZrMeMQ9G8QscDwb5ZjrHfOCIqxZRhtH5+2gQfFtere8/MxD2IDBqZIbndbU3YjDXw5MAN38Mwqah0f38fg8Eg3rx5U9693+/H/v5+7O/vF3OdtiYynwHDfkgmb/zLvV6vTHIwJ6yC7FqyftDutL3ZH+K2AtQz6zIIm2VmXaYP+awukGkWiq7lycvvZEuN5zKIW08yucj9x7E5pzSDIBkZr1+/jjdv3sTp6WmpQZvHvt8/uzeekt/jIqiTZweoFhjIZDKJ6+vrmEwmFVOCY7KiZUYDcJmZekBzjFmBZ2ODshUhd1R2VRjsI6qs5eFhXbmdY22em6FGrFeiZKaCeWUfbUSUDQxJDeK6KCz3ygVU/A4AacQnZc6DJ/9wD4MDfeg16m4jtx3AOJ/PYzabFdBhzbtBziDC9ZvNZim9d3NzE+12O3755Zc4Ozsr7Y2ZjqnONifL5bJs2GfTfLVaFTM/WwV21/h9nQNqv+hqtaq8iycg2jRPrHkSoQ3zcQgTkye9PPnUpUa5Xd2H2TrL4yb/oIu0ly0VADsHwWiDTDZsJUVE9Hq9OD4+jp9++ilevXoVg8Gg4vp6ylX3veRZAyqO9dFoFKPRqGzfSyeZFUVUGw5AskmBctt/FfG4nJxzOFFQDxSvY+dcR2XNaLMv0C6KusFo84R78o6AgI/3+7hIB89sVwf+NLNrgDoDAe4BiotgNnszw8wmPbG57VlxxGcenID2zc1N3N7eVvzkfGaTl3s5KwLQabVaMZvNyoSxt7cXP//8cy1DoY8Gg0F0u904PT0tgTOAZ7VaxfX1dTw8fMo7JQBCH9zf35c6vLwj70V/ewK/u7uL6XRayu7t7OyU8obolYGHMZDZl/vfYvKQQdXjwqZ6vo51xcfip6wDUT9fFrcnmSeOGdRZpH4Pt+f+/n6cnZ3Fixcv4uDgoLJENvt9LXX3eUr+DAA/W0A1O6XwibcgyUq2iaZ7MFlJYQkOFnkmj4jCWCOqlcoNnL6HOzJnGNSZu8yqNjEBC46z+QywwSa9MWGdEjhYxe6fMDQUPfuaOZbvs/8wsxmDt8HD/jH8kZ7EXLt2OBzG5eVlAVBYqQtY5+CHV/3YdcKE0Wg0HgXmaCe3J1uMn5yclD6mL0j5Ojo6iuFwGBGfWBKmel1kn3b3xMmxvH8dENp1wTWyDmXwsm7x7A7q2Loyc83sNuc0W9/Rx6fGmHXHz53HjnXKQSfrTWbutGW3242Tk5MCpk4N475+hgzyX2rG/1k2+2wA1bMIDQ9jwb9lk93ssM5XkpUOpbEpgtSZojlNxD8RURnYGZDqfEF5BuUdURhXtOI6rm7upZPMzHUD2AyTa3E+lX5QPkAuYu38rwNMWCS+yYiogBvtlyPibk8Ci4Dm5eVlfPz4sQBpLmi9Wq0qFaL4cVCGdoDxmMHz/J6QrCe+DwGm7MK4u7uLg4ODODs7i/F4XNwfrMcH0AEB2twMD3DgXnYlRKyLQudFAtYxWxXcI2cQ5PfzhF0HJmaY1iFkk7nP//a1up/9PHZ1AJwQJXSfa+RsHc7DLXN0dBSnp6dxdHRUXFjWf47Pk7+f/0vk97LZLM8GUCOq+W/3958qBQGm/pz8SAdcPEjckXQKM7NNaEdgI9ZKBTjZtPPgsC8tR6UN3jkS65kTkHF0nvfCBMefx3NjkpqJ2W9qMwolA4hpQ4sHnk12B9SazWbJgMgzvge5Axs8l8FgPB7HP//5z7i6uqoUtSH31eBJ+3liqnOfIPZrWof8nPydGZ1zLOtcRLTlwcFBYZiDwaC0Jz5f8ngBR/y/q9WqEqW2XsLIzBj9/DxDnrisYzxrRHX1Ww5CcQ8fm33fWTfQU471eHIKYLYAsng8MdlErIkHxIFjPG52d3djMBjEixcv4sWLF9Hv9x+lltny9Pm5Xb+HPCtAjVj7DQFT8hfN6hiwBi462/5Nz1j21xmQM+NFWWyi5JxVD/Dsw8nMwYPArCEzC5/r4BiD0oBrU8gsKWK97huXAOaz80/t6mg2mxXQxZSOqC6fNKuwKesItCcsAJFrXV5exv/7f/8vms1mxd/oXE63P+dmf1sOPhiEeW+u48HticxAaWZk4OF7/rerpNvtVnJIyUKhEAwBNfTGloktB/9v0LQbJzNWW1wGTyZa63oOPvEsJgK0odvOliD9xzV9f+uszXuuWUcyaDeOy8/ovmB3hbOzs3j9+nWcnJyU0oye8D22uMYmH+2XSAbf3wPGzwJQ/dL4ra6urgqDsTkYsd7mGXGjurGzwvhe2ax3Z2Dm4tNyMKWuEwE5BrcB3opmH48VlcGXzVbuz8BptVpl36SIqEwEGSh5ftrLoOf24XgLx9aZ8LwTfl9PYPad0k79fj96vV4sl8sYDoeV+1LIxJWh3MasMmKQcU+Dgn88kHgPg4QHO/1gFmPWlt/HbUO2AIBJ1kCn04nRaBTX19eFuXKd7EP0Pcw07bd0m/B9NvkNdNY9szj0Gj1x3qvP4V51z2lm+fDwUJkssyWWQcxjiwkyExbex26wbrcbL1++jL/97W/x008/xWAwqL2+2ap1lHv6mC+RTZbQl8gPB9SsrCwvvbq6iuFwWKluboDIDNDCgDOQOgCTf7J5yI+DMm5YKxnPU/dOfjYGtlkXym2/JMDBPVyFnWeEkTLbuwrUw8NDtNvt4sNjoO/s7FTYroGGezNA7dfLLIt7OChjc5/B0G63o9frxcHBQXS73fJuLrfWarXK/7wD7cmxsHUPEKLjBiJParShWWrO07RbIrPADHb5PJ6HiZcJst1ulx14AXei+nYnWK9MDJym5jxQ65wBNuuXvzOjz2axXTuAofNhuR9t6KCRJ6nsu6TtsgvNLNzWHZ/nYFrEJxfQ4eFhvHr1Kt68eRPHx8eV0pJ1beBxWuee+lKxZft75YcDqgVAnU6nlUr8HuBmnZmJWCkwGyPWIBBRdb7T2XYRMOM74m624ONgjflZNgE3AMJ9ASwPNJTYQQErM9+ZrfFeBmcHZVxYmvfzVim0SWYndrVYUT0o/XwEd1j2ORgMotfrlfvnYhb0QU7fYqATKHN03O6RvMIs4vFAMyD6/fjf1gbtb2aYXUcG1Hwd2tplAbG0rq+vi9+VPiLNjc/Mlt2++X1yf3F8fmbr6lMuJgMm3+fJI7ez25PzcuDWq8g8NnJfce5qtV42fXh4GC9evIizs7M4ODgok1S2GCxPgeAfMf//CKg+G0BFqRzVt0nLMT42KxUMkMFmk86ABrAwcKbTacUflQEjYq1kngXNsmz25AFuH5KZaWYuKL3fiesSSWZSsfJ7gYDdI3WMwYPWk4bNvuzHy5/nH9qCgXBwcBCDwaBsYMfztdvtSjV9AJLUJVwVWCRMCLYAeDcWLdic9//oTs7LjXi8Y2ZmJJn5ZT31JMlExvWZOGDo5K7u7u7GxcVFyRDguNVqVd6XZ+MzL8Iw+88pTn4PJtJsJXmC5j5esml948c64Huhz/ZTmowwYeQJy5OT2xyrCF05OjqKV69exatXryp+U675RyXjyOcAuO7vz8mzAlQCI7PZ7FEAxAyR4yOqznw62VFwzuE4WATnAmgsGrBy5OfLyoRk311ElRXbnEHZsp/SoGvzDWYJGwP4YW0AGYPTk81qtaoE4dwWWcntX/XyQv949ZgnHfy6g8GgFKzY398vSe/8eIUSbWC2BJO128F9iZvDfl+DPG2dXTm+H+/PcXXnmtFtMqvrwNjnMRHgB6bgNe3IOQ6K8q52oURUlxE7gFTHnq2T/u1zsmls9u/2y+2byUHds9AOeex47Nqi8/HtdjtOTk7izZs38R//8R+V1VCfY5ebQK/u888B5B8F04hnAqgGAvJN6Ti+t4IANLBRM7asDNlU4loMUlhtxOP15XlG9fXrmJBXPjn6agVzBwEm2XTMz24fWEQ18d6pPxwPCMP4MWOZSAwIvIeT2V1F3vfw+/B8VP45ODiIg4ODionPPQHWnCFhySa9nytPtmzEZ6CvM0cdvOJY+t6BuhzUMcPKbpDcT+7TPNlT6APzHz1rt9tlUYaJg1092drJVkK2Uszg8nioG2954szAzE9+vszmfQ+OMYHI45a2z9fY29sry0r/9re/xZs3b+Lo6Kji1vmaoPml5/4lATWiWmMRxTc4udPNZrIPyIEIA6cd5Aw0D5w8aCweKDlgxDPZ9I2oVh/PAYEM6JkNcB7HAmz2wQ4Gg1itVpWoP+2HydlsNsuafrNf3pv3MiA9PDwUVktfeIVYdjUApsfHxwVMbTZ6jbY/o33oa7cPTBRfb7fbLW3D8tmHh4dKnVPYH8ydtCG7Muhrt6/97raGPKHXmb45LSgzLm94ZxBptT5tS31+fh7X19eVKlyueeCSdYgn2xzYcgDWOp31mHPsOmJC5ze6zTG2CHz/OpPfOm3/vvs+WyidTicODg7i559/jv/4j/8oQSj8ppusjz/LPp86/i9t8tucc16jfTIeyFaWzCrtZ4qIYi54hkXyuXkQmYllpsmzcQ/ew6abfVR1vkc6CraU2ZbZkt/dyl0XnMBUbjQaZWDyTC7MQdtk8ATMzAAN9IBpr9eLo6OjODw8fMRM7du1H9NuF1wS3M+5k7hhaOdms1lWV52cnFT2uncBGK5ny8TsN6JaD9fWgfXEOpQnQq67ibFZz5jwV6tVqU7lxRysHENyWTykji1nAuHxlHWM83xtu5es1yYNGZgNpv4s38Nmul0Etjppi8PDw3jz5k38/PPPhZnmGqfZqvmaYPo5UP3LASog4CT0zCAiosJsSAsy07PfKs+SnkkdCKKxGOhmnFaszM7sb6ozYcyOMrvOrgfuZzPbJijXy4VM7JKABdGOy+WysoFZxHpJJLmtEdV19gZTXz+7U3Z2dqLb7cbR0VEcHR2VmpQ8g5/Vpr6v4X7hGfDD8ryXl5cxHA6L//H8/Dzevn0bv/zyS9nepNVqFX8tAM0yWbe/J7gcBMopdg4w8ozZv+h+jKi6aAA66ybA76wQ14p1kNWWmXXF96gzy/N4yoDLNe3useVmXXc7ZOGe/J0/Rz9xd3gS4TnQ6YODg/jb3/4W/+t//a948eJFHB0dlaI3eYLL97N8TTD9y5v8gImLYpgh2rQx2BlQzHwyG/J9ItarVBhMsCkDFZ2YzT2zFytQZqGwKu7LNc3AeEZYTGaa3Nfg7sGTTU2nRpFz6kUAzi3lXSlGwuICJ+vzvh4A+AOPj4/j5OQkBoNBMfPtM/VCB/uWGewGqIj1PliYgPP5PD58+BD/+Z//WTbdm06ncXFxEWdnZ8Wk9hbObA0d8aky0Wq1LiDjFTledWafLZJdMO57TwiAla0m65jdTbyjAZwJ4OHhIcbjcZkgMmN0X+cJiee0/jAxcr3sY83vZRCvAzGTjuymqvttq6rValWWlqIDOzufdpZ9+fJlYaYHBweV/GLf9yl5ChTrAHjTs9cd95cDVPvG8Pe5szf5ZwywddeLqEbfmVEBWGbQiMfVgQwmmJY5+dgKyLUc/bdvCsDOqVN+ZoN6RBTQ2dvbe5QKFbFmVtknxTuiuHUVujzgYLT2WebalW5jClWcnJyU/EDei8LLntT4vNlc7xbqBQl2YVxcXMTFxUUMBoPKxDSdTsuxlBHkfKyK6+vrOD8/LwVNCFpRfhDxoLZP0oPXwGQmaH2qYzzWC+sgwIafNyKi2+3GmzdvyoT866+/xng8rl1CnHU+T9T8bZ3kXCRnpjCJZ7EV4syaDMqZ1XMeRCVivVyXoCT6xqR5fHwcb968iZcvX8bh4WFJnasb05vkjzLMLzX3f6/8UEAFdIjeOvc0+y7NKLwtQp7FbI4wW9qP5QHBYATsOD8L93TQygMen1H2vxrgMH/5nudkNkdhicRbiQ38dWzDQQWzEhiQB6ndC7gAcLPQF1zPwAN47+/vx2AwKHvZ283S6XRKzqVZHW0O8HIfci3Rgw8fPsT5+Xn0+/04PT2NZvPT0tXlclmCb/1+P7rdbtm5odfrxXQ6jbdv38bf//732N3djf/9v/93cQksFouyCss1HOqYmn2sDoTaPLYV4aALusSPmT3HcF9cEP1+P3766aeiBy5CUzfgPbHTxzkOwDl+Nt4pu6ysOz7Xub+2vGzROVvDbhBPWFgPdn/hhjo5Oan4TJ3LnSW7556SzwHsn/n8S+SbAmp2avtB6ajb29tSTNj1Ms3wbCbCfrJz25FUz9qsPzbDsKJjxs5ms4hYgyf3BIw8qGx+2x3BPR1F5z39zJjevG+j0SiA4WIgeelnTlL3aifeGeDgM1eaIvGd7zD5GcQACAKoEPQ5ODiIfr9fmcx4rk6nU7YWcRtnUxiTbjablcI3q9Uqbm5uYjQaxdu3b6PVapXkdzMpAl+r1Squrq6i1+vFYDCI+/v7+Pvf/x7/9V//FcfHx/HixYvS3jBb2pxcWEzuPIHSZu4b94lNWoMA7+gcU0/y1lNbTIPBIH7++ecyucHIOR6dinicj+qg2Wq1qhAMA6ILdNuvSZ+7r2z1OPgFaXCqIu/oCdf+eoM+Ok7VfSfu22dqy+H3yiZm+mdA1pPbl8g3BdQMoHUP69nZTnQGgMHYplb2S7ojzYasUBybZ1YGjJWQ65ilmRGaDcLQPPgzmzFDcuScZzWTA9RRxro0Hq/H5zm5D/7T1WpdXo53aDabxSIAUGl7MzPu02w2o9frlaWARPQ9odnnZrOXfmNyYpABwLPZLK6uriqV+XGxwJq99Jh3Go1Gxc1CVbL5fF6A4sOHD/H27ds4PDyM4+Pj4iOm4jt9YCbN7/v7++ICQTesE7Qxx2Ymmd0knkwye0V/2PuKyf/Dhw+V4uFc12JmWWfi+5n8DHWfW2cz0zUr9djzWKTfTWoYCxChwWAQZ2dn8fLly1LXtNvtVmIcfp8/wxL/KJhukqdcDlm+i8n/1APlWRIT0AyMmRWl8rpnFN6f46/CTAecDVpmCVzfgyezwWxWI4C5gZLvHehyVoLPNbu23y4PZoS2MiBbQZyEz/9m2hHrnUwBTxiZ3RSc3+/3S5Hl09PT6PV6Fb+pTT8zNFsntLsnEmo2XF5exuXlZTn+6OiovJeZPVbDZDKJ9+/fR6PRKNuW3NzcxO7ubrx8+TIeHh7i7du3MZ1O4/Xr1zGfz+Pt27exWCzi559/LhMfS2ANIkww3qKcNo9Yu5CcFmQzOrsF/H0GR7uhdnZ24vj4uNwjIuLt27cxn88rvlOXVfQYMNhlazD7XbNOOzaRAZbjDai8h/vFLiYzTAJSR0dHZWM9aprWWZr8zoBnQmP5I2D5Jcz02Zr8iJkagsKhHE4izhH0iGqJPqch5ZnbjW+TNPuKHO3mO+fl+Rr2tfHje8MEze6sIAZ6A7UV0kyaZ8kDHnBy21lyACm3ncGYZ7Uv2Cz3/v6+pDGdnZ3FyclJ9Pv94iP1RMDgiIhKOpKfnXdZLBZxc3MTFxcX8c9//jPevXtXtmbBbUC/UFyYlVEREefn5zGZTEpknyyFVutTwjxVyhqNRimy89///d+xt7cXg8EgRqNRyRrI+0MBpgA672MzO4NGnUtrE4EwQ80WVafTKdkLBNjqAmpZHzzx+P5+puyHz2CbJ2U/fyYh/syA6DYD/LvdbjHvX758GcfHx4WVmtF6EnoKzPz9l4Brlm8NphHfMSiVO8w+J1cTesqHATgBCPj2bAL7OJSg1WqV3S2tAPisDCg2fXnGHCWPqAIGIGIWkgEyoroShfxQO/I9sfBZHXAa2P1szmDIq6F4vpxvaEA1a1kul8VEdsUfr3zib/tUfT37lemHRuNTetPbt2/jP//zP+P8/Dza7XYxxW1mHh0dxdnZWclDnUwmMZvN4vT0NLrdbuzv7xf2zTPgTmg0GjEajUrR54gobg63o33lADOpZrSln5/29Dv6PXPfGNysz2Zm6M3e3l5ZdXZ4eFisC/cJ59gdVEdWIuqBgvvldCr/thVVF/Dyb7t2ms1P0ftutxv9fr9sW3J6elrJCMkA/blxn2UTmH7p509d68/Kd2OoSFYugib48TxTZQXGPEXB8kZdZpRc08nlEdVKQ/aHAkJOcHd1cQOsWbEBz6CRGXZmbE57ypFm+yEzI6ctDIh5aSjmPGLfqF0C/O8dLvmM5YBnZ2eFWbjICW1qILPZl/2GvO98Po+rq6v4n//5n/j1119jsVjEixcvKr43UrNev34dr169Kj7b6+vruL+/Lytp2u12jEajwogajUb0er04PT2N6+vruLi4iOvr6wqzQ+dubm4Kc2OjwFarVdlNk/5wCpFZI35cm8zWcQObJ3JbOH4umOrJyUm8evUqFotFDIfDSt960nM+q3XNY6YuwEM8gfczU7UP2BMuYyszcltavV4vTk5OyoRA5TEmRDNY68vnTPc6Fl13XN3nf+ScPyM/LG3KoEP+aZ55AUwUytFKd4pNanxTdUqTzXUrdMQatEklwvdqAOM4g0ZENV/QQRneNfugMhOIqJr5NkXt/+Revj6fMSlxjk1C2qhumanfEwbX7XZLEAHz2IzUDNs5uAZ9+spVpEjOByg6nU4ZcBFRMg4OigAAIABJREFUSan56aefSoEMBmyz2SwBm8lkEre3t+UZvI3z5eVlpbq/I+IsaZ3P57G3txfj8Tiurq6i0+kU9423O8bi4TubrDkw5YFfN6iz7hhQef/j4+P4+eefYzKZxPX1dQUo6ybwbEH52tZ/62edu8BjwrqaLSTOdyod0fsXL17E8fFxqTiG3hiw/ZPbLQNnnhC+xDz/I4z0a5n9PwRQPcPZj0onRVRzP+lcZma+szJFrP10BtRsVjPbGsANso1GNQqf/ZCbzCmzRTMcvzPKbiZoJmqGG7E2lXknm0hIZrTZVZHvbXA1U+VdYYgvXryI169fl0CUgxCkHuV0IjOYnI4zn89jNBrFb7/9FrPZLA4PD0tOKu1HsOjk5CR++umneP36dTG/Gbg7Ozsxm81iMplExHqtvt0uzWaz+H97vV5pbwAY8/7Dhw/FJ9xoNMqW5b1eL169ehUPDw9lSxOCK71er/QvK5/q2J0ncOvQ7u5uhRjwuf+GZbNd8mw2q1yHSS+7DnzNDAo5KMU9N8Ugsg7xm/PJCT46OirpdAcHB2X1HO1q15BZOv3uVK9NYLoJbC1/xrz/WmAa8R0ANVP6DAZ85gT3iLVpTkDJDQaAeJmoFdgA6xndA93+zewndcDGis41/E45V5Bn9N/Z3I+ISpK5z/HAyL4zt6HfqW4A06YeEI74Y+Z74oBNnp6exs8//xyvX78ug4P7MDicM8v1s9/QgD6bzcpa/OFwGMvlsrBDgkwkgrN1ymAwKJOmMyJI7t/d3S2umfF4XNpyPp/H0dFRRETZ+QFG/OLFi4iIGA6HMRwOy37v7AyADIfDmM1m8c9//jMmk0mcnZ0V/yogbjDLvkj3VTb9zTT9HW1HgA3TmSXZ1gMmY3673zMQ8b+tH57NfZQDqp5k+cGiGAwGcXJyUlbM9Xq92N/fL3uEUe3MASwvbKkTA2YOnv0RMP29IPuXMfkNQPap2ex1GpQ73DO/TWlYBn4ntlvG7M3FGGCeDkIgDw8PZafKbBID5hm4kdxpDHy7HHh2/jbTyKzcPlH7ztxW2cRjYGTfKO+CeDWO35NJJOJTYOTs7KyUUMtbIOdULwNqTkPLZiMuBvJC2T/s4eGhLBww84XReVDv7++XH/bOmk6n0el0yuotBP88z8T9Ly4u4t27d8Vven5+Xph4v9+PRqMR5+fn8eHDh3j//n25f7fbjUajUSYZAqK0v/XWf6MfBgv7PusIx97eXrx48SJ++umnmM1mcXFxUXFr2bKh/bm2mXLWQQOq+8v9x/FMAN6EcDAYxGAwiIODg1Ich10JWDTg+rfZjZBNfROCDKabADVbf0/JH2Gsf0a+C0PN/5vl8VLuzLqZJTvLF4tFzGaz8jnKTaUhswGDohko1/c+VgBNrs1qIPUE4Rk+Dwx/l/M1M6PNEXoDX0SU9CS7JMwuPQHkz5AMtgTg+A4XCYOFdfOrVTUrIecOeqCYHdNv/N1qreu4zmazGI/HcXd3V5YdA6CeWJxB4AG1u7tbIuEwptlsFvv7+8Wlw4oj2o7arZPJpEwIo9EoFotFMbMp/szKPWoCsGHk7e1t/PLLL9HpdB4trvD71/kl3S5eRJLHQsQnQH358mXM5/MYDocxHo9jOp2W9q8DIUA9A1i+tic5jzszUnSSiarf7xcgHQwG0e12y95h1G9wxgftm4vAc/3sc89McROYZlD9EjP+z3z+e+WbA6pNUTdGjloCHA6mcL59LiimHfMEkjIbMKjVKRX3x/z3ii2eAQU2iNgNYF+UAdvH+L5OybLZx/GwKoNjvkYG0Px/nhAY+ORamvm6HXZ2dgroYFJn/2Bd8Cm3Sw4gEtk/Pz8vKUyksQGa7L8Ey7T7gGs2Go2S4B+xrpHgOgK2StrtdnEpwILNuNk6JmLti726uorLy8sYjUaFaeE26PV6cXNzE5PJpBSCyUVvNgVfbOUgdRYP/YHZ/+LFi3jx4kW8f/++TBDWZwOirQX/b0bKd9YvA6/rMgCarJTDJ03KGm4awJQfLJenJmDfEzGj9nGbQPdzf//ez76GfHdANdh5sJhNOeGdY+2I5zcdt1yu1+zbHLq/v3+02sjBrVzOzopnM9PJ934O3wsxCHrAcJ5L49lnRqI6GQYOqnEs17Bv1eDFu+HSMJPlM4Mp7cLzdjqdku7CiiJAy2ZaDr7UgXOd75aAEOyl2+1GRBTWQ9V/FhBks9lghZiBeaCypQa5q1zj9va2+PrG43HJb729vS0s9LfffovhcFgYGctQ9/b24vb2Nt6/fx+LxSLOzs4qtWABVfsqM6Py4oDMwrKrq9FYp1ENBoOSNuZ3r9NFW2B2Nxm4mYQdbPTiClgpANrv9wuIGki9EeMmM9/P6N91zHyT1IFq3fd1n38r8KyT7x7lt+LQ4URZvdsle5ybGTmfkoFKx3kJKMpidpcBBeUibcsrZKzwZqkwB0sO7PBeFrMIgkER1UGGmCVnX5knIwfU8A1yX9rIdWUNuDnYxfuSWI4v0+1ax75s1mafLmUHsTwoJIwpjS8VxsiAZVUUqVTZUtjkQoK94vOjALZziW9vb+P6+jomk0lMJpPKNiQPDw8VZkVWAIsbAH/qDiyXy8LmsysKtp9XumXXkXXFDJHP0QHM7b29vUcTIhO+o+X2h2ZdNOjD2GGjtDuTGp/x4+wOzs27MhjAN012+bMvlR9lxv8e+S7VpixuxOVyvX2Fc04dqKHjvVyS5YawuGazWaKKmTH5GewzsnPcq2EA9zpfj1OS7KvM5ikA4+94Xw+uzBjM3O0W8conP3cOSPn969go59RNAM1ms4CQAdWmW8R6L/kcHDFbJcj3/v37+Mc//hGz2ayAwv7+fkyn0xgOh3F3d1cYEauwPGE4E6PZbFYmSSZY65QnaEDVbh3M9ul0WvI7r66uYjabxWKxKKC1t7cX/X4/FotF2Z6j0+mUSYB2uL+/LzmtPBN+bpOGp9iYgQZrhWNhmQD3/v7+o/q2tu7oW2d30HYOJFKjlDxRTHszUkfrOZ7Jz6Z9BlJPvJ58M4hmS+NL5EsY7Y8AUcsPWXrK/zbPMCu99NJMCEUjuo8Zh2LbH8T1s4/SiltphJ11LUv+zx1nlolYabM4OGPwinhc1cegl/2rEet9hrLpZtD1dbyNSWaOdUE0gg8nJydxenpaduh0H2QfqoHdzwLjv7y8jP/5n/+J//qv/4q7u7t4/fp1tFqtuL29jbdv38a7d+9i9/9r71yb2kiStp2SmDUgcQZ71rMzT8Rs7P//QRv7YWZjDqwHDAiQsI30fuC9iquTaiF7GINNZ4RC0OpDdR3uyrwzK+ubb0qyDIC71+uVlI6YlYi1H+rRmpqtC3N3s9msAAHmPmkAIyJ2dnZiMpkUQJ7NZnFwcFBW2m1vb0e/3y+gi9Z7cnISEVEoChxipknu08Q8iZrvd38kAoJdC7Di3N5oxq4PWxiAos16vPPWTB1BYRD1irhFQFoDVH/zftbMaaNlALZNSWur288tnyV9X00bM8jlwHsAh5nXHc3aV0SUAYDG6pmTWd5gy+oWm6N0fucUcFmziZzLm9/L//Ptd7C5XjuWY0OzJmYNOd/DcaZoLQY7xADE6iQC+Z3nM4N/TSOnjOZsWaJJFiViPcfjcXHyuA7dD9D8MoWCZpS1a3Ptfk9PQGhk3hCPYH0cUZPJpLT/xsZG4RixkFjtdXV1VZxdLDhAO4VTdB+2NuY+4va0tun+gsZN5MXR0VGhKNxXOBct1JolIOqctXz7N2ukdjYZQO1TyI44W3NtZr7f22KNfpH492U01c8Nqp91LT+dxwPRJqU1SswrzCD4I5YF2uQmftQeygzU0AimGxjI3C8iFu4awDsA4jUNEcnX5+M1SgLhuN+RjmknT6YgzBNnMF7E8zr2dGtrq8HnWdOn/HzbnDXI93q9WFtbK7Gss9lNopV+/yYX6/7+fqF6RqNRqU/Hqvq5Hz58KHHGORbTfB2SB6djZmezWYkGgC9GUzs7OyvxsazSQ9v0JEJUQkQ0di4ARE3RRNymeMx9xOLoD19HHe/v78fJyUkcHh7G8fFxXF1dlWdmU9zmvD8GUYBz0ceOJseN52iPmmZK/de09Kyd1kBykWa/7LHHkM9u8vvFAUuT3oT1uDEwQSJuA8TRFOw1Z1mfA9wd6M3za1qCZ/cawNkhkgcF59dAuAZiBkpfF3HLdxmgvBqG63MWIodK5edl85/n8Fu/3y/JmNncjraxSVbTKgyofONIIRUfa+pns1nJd7q7u3vHA02Eg+kdHFiAIPREbSWOg9E9GD1BRdzudYR2jta1vr5ediF1xn60f0xrAKrX6xUNjvJGNIPoeZfcdwwqdhgagHgPwJ918m/evImIKKFt3mrEIWQGzkVhTl5ODDBn075m1tf40cwd52P+9nm1/+/7rSaPDayPspbfnYnwme3t7RK2Yi815gsdyw3vzeVsYhGiQ4hMXr3EwDcVYaeUQ60MFDnWM2ukNjcNqOY/Pcjc+DzfnRSgZLAy0WSnhONLeXYWzqMMHLOV4PAwt5P/dqeuPcfne1DSpmilPN/lgM7hXTB3P3y4yaJP3cCDWoMyOFhzdhv6XQExwIpJ/fT0tBGJYD764uKihFqxlQv0CJopQjvnXBI1Soi/3f7044jbnKksPnj58mW8e/eucN0Ap8cHjl5rrV7F5DX21kitiS7izrNZXwPCZThk95cMlvd91+7x2PIoYVMIZvja2loh3c/OzhpcH04ONFEIeTqyj6FJ4kBgwHrlhsnxrFFmTrDGkZor9Pl2jHHMGqq54VpdRNyCqgHA9/I1+bea48nlbjM1uZ/TFdo8pdx2GuUB4+cwcfk4AGGe+OLiIo6Pj2M6nZb19Kw+gl9FczRoUfcrKytFq2YjvwycPIsyAGyO0+S8wWAQ6+vrBdiITc2xvEwKeMKdXDuDlJfm5knKGjPHDSo1Pj/ixoH2+vXr+PDhQ6FLPKHUVizlMCfGgmkCB+RnkMyWQBuA5n6R+4f7Q40WyH1yGSB9CiBq+eyAmjUzNBlCN8jMbi0tbyLX7/cLT8Re7GipDsPyCg1zkW0NZI0PoAbkPBDd0a25ZgD2AOd8yuSOmrWoiKaZngdVDUTz8XydwdwdmAHPCiAWQzBJWLN229UGjz+uE2uGV1dXcXl5GYeHh/H7779HRJQk0rPZLM7OzooZDuAQDzmf34Q5/f777zGbzeL777+PH3/8MV6/fn2HasmLEZDspMx8NeWvac38DuijoZpnzKayhXpye9NuPoe6d8JrrJytra1St9AgGSBrwOljEdEop8vbBqZtDqf7tNI2Z9Oi+/ic2jd19tTANOKR0/eVQvx/s5412YTKwJM66bO5PTpJxG3APKaPZ+1a50BsHjpywPQAAyBHHNjxYyDL75rfF+CnTOZLuT57b/PzzLsZ3A2m/o3n8Lfrvt/vlzX179+/L0HsPMfaYe78GZz9MWVhfpNyr6yslPhHcilERElCQruT0m9lZSV+++23+Pe//13ChNjsjfOIPY24jZmlblhN54naK9/gcOlzWDzE1cKtkvNhNBrFDz/8EAcHB2US9yA3QFNXdiRmSoLzPJkST2uNutfrNZKnWxt2vzfY5uD/7GDKHnu+zXO3WSc1AOUZbeb+MoBa+/++448tj2Ly5xkZLZVsNoPBoJEpiHCV6+vruLi4KJ7eiCY4o0344wbO5rfNsRxITmeKaDqBKOv19XXh+tq4RINpNtV9zGJNt9frNSYXb9lix5bDhEw58E1Hx3nCcfN8DNLpdFraoG0g2AGUf/M5OH7sKIy4MVv/9a9/leQ2LAIg9hTnIhwiXv/Nzc3o9/uNNH8REW/evIlff/019vf349WrV7GxsVHAnPoz/w2gsmMqk/N0Oi1bmr99+7Ysk6Xuz87Oyn5Yl5eXjS21vZLITh+H8BnUaQdz4z7PEyEKh4EPLdxOtQySjhXNq91oo2xd1H67z8SvgaEtsZrWme/jcfoly6Nl7I9oOqcGg0HxTqIp0NHcOWazWSOoP2uHcIGs4aaj0inxcmYzh/IYZA1+aDo1gLSpnSXP9HaIZccY98u8X0Rzb3aDaRuYe/Lwu/l/a+fz+bwsmHj37l3xohuAM31Rqw8PIDuAKPdgMIitra0YjUbFmXZ8fFy2JAEknJsBbz+rlF6+fBnD4TD29/fj8vIyfvrppxiPx/HPf/6zxKnS1qaLMmXjeFkm8MlkEsfHx/Gf//wnTk5OytLTlZWbPa5IqAL3i0ZMX819x6DkNrHVA7VC/3aGMWuHTFAczx54g2bNoWSTvs00z0DqPtwGqm7/fH7+rQawy2qbT9XMtzwqoCK9Xq8R/uFOxaCGN8W8u7q6umOOM+AiovCqvV6vEZfHd465c7yhveWYq0gtrd+i94qIBnCbIlhkDiGOeEBDtRZtcz9fW7tvpjsibveiZ397tvngvgb+DJjZRDRI+5k5DpO2mc/nJaXfeDwu5bApDrdK7CV5OK+vr+OXX36Jn3/+Ofr9fuzv78d4PI5er1f6iQGdMuHkBMBxktE27969i5OTk/jpp58iIuL169dxcHBQ9rniPo4/tdZem2wNjPQxl8sWCGXj47JjyaEQZADNbZP5z2y+c24b0NaO536WedL8nNp327EvXR4tbMoDDkCFA/Ogh8NCgzV/aI0JUCAPJqDjpBLsRWTvP9dThojbMBXzmwYur9Ryx6lpqbnj2dtvgPJgyJEF1mQYXG2d0YPEYTz5PD+P+jNYt/Gg1AfXMdn5Gfl9rLFRl+apmUyvrq5K8ueIG2rgm2++KbuXrq6uxnfffRfD4TDevXsXv/76a/z8889xfX0dP/zwQ9EWmWwJvWJColwnJydxdnYWf/vb30pc7OnpaSnLixcv4vXr13F9fR2Hh4fx3//+N46OjuL169fx448/xv7+fiN1n8HMFkg+5jZ1WJSdcOZOuTfaOjQK2ncG1Jr2WAPL3Fa+ZhGg5v7u6+47VntmrV9+6fLom/RFNHkikjNcXFw0GpPBNxwOy3U4DpyoYjKZlM47HA6LdopZB8g44L8GbtY4rKWhbWVT18CTTWOfQ4d01AHH8lJRrvVgtNneJovOyVEGfgbakflVfvMEY542a2F5APIb7ZepCoPudDotcaDev91lX11djdlsFkdHR2V7km+//TZ++OGHoukyMcCB8l6U7fDwMH777bdYWVmJ7777LgaDQcneT5alf/zjHyXy5JdffonpdBrj8ThOTk7KyqrsUTd4ZqqkFp9MW9Gnao5NKxB2EOG5N6C7Prl3BkafUwPg2oe6rwHmMv/ncn1tIGp5dA7VoIpJzz46mGEMcIfR9Hq9siTx/fv38ebNm+KhhV+1B5QoAcDB3uCsQdhphVMlorkthJcjAtIeFIveOf9d68CUi+fBndW0nTYudZFWmk044n0vLi7i8vKypM/L4JyfX3sXg6AB1lqvfzcYra6ulu1IiEslcQc5Uo+Pj+Po6CgiIg4ODuK7774rafQw2U3V4JXHRB+Px/HmzZu4vr7J/TAajeL8/Dzev7/ZXpq9nA4ODoqXne2qI6JsueIlpZ6AXE+eaHPIHccot3NM9Hq9qkNtMBg0IhBwZNVM8mX+z+2Uj2dKJ7d1rZ/dd/xrlkfnUF3JaCC7u7uFY4MXxRTC7KHhcW7gZQWE1tfXi7eaMBhMJzjY6XTaIPYzmDkEKQMDg9VJSHif7OE02PE/3/k5iM1FrvOzGZj+vQaqphkWdejr6+uS1u709LSsRMK7bMnPMUBQDgfxUye1cpgbxOmTHYyERmGCHx0dxXw+j9evX8fOzk6sr6/HdDotZbWJzB5S19fXZREAwIejCwsG7/7Z2Vl8//33sb+/H7u7u/HNN9+ULE9YU/C5uU5rmpwtFLebFw04soUFBQC++5EXSNgRVXveIhCtASr39P/u921aZq1fPQfwrMmjA6ql17txILFXEN5PNEDCZ9AKAMLt7e3Y2dmJs7OzePfuXfT7/ZKdx4MBxxPmPtoAS1utLdtpwLMi7uZUXfQu1tZs4vV6t2Y8Gkxezpq1wBpYtmmLfr6f6U4OgNu5Af94eXkZl5eXZdmuwb1GZ9Q+PqemDQMuBo6XL18WzpD9pphA+/1+nJ6eNgLcv//++1hbW4vpdFraiSWivV6vaLhYGKY1MOHH43Hs7e3Fzs5OzOfzsiOrrSEcXCQit6ed+8K7u51Md9ic54NVwP24Fzw9E6hXBbovWLnIvPoiYKVNcn/J/WbRcf9W63s1yYrF1yhPClAjbjoJS1Ex3Vhb7Rg8BtZgcLv3Dg6piJsM8Ts7O9Hr3Sa2IJmu09O5c9tJYt6Uzm7TK5c54m5gvQdB1nQx462l1EKirP3VjvObf88mde68Pt+TDAAKsE4mkwZX53ubI7WZmyUPbC9LpRxYCTyfNsRief/+fZyfn0ev1yvturu7Gzs7O43sUP3+TUzr6elpCbSnHXgmWimB+ufn5zGbzWJra6tQRIRdIWi1AHHOyp8jOLLlQf9y+3IMCydndoq43b2htsY+L1zJnHTNbK/1BbfTor8/RjtddPxrlycHqBE3jWFQZUdMAxtgBw2wt7cXs9ksxuNxoQAYjM7Cw3FzQ+7wzh5UM6fNAwKsDKgMiJmXNWeWf8smf3beMFC5v8VakKXmnPJgHwwGBUiHw2FJZYeWeHl52RjMtTJzT2ummSLIbcuEklf3EOJErCo8Jfwm+R7YdZO+QfzybDYrky87ttrScZl5b47jkOLdWOoKX+nFBISw0QezZp61UiZr+kf+31YQfdIT9zLJvl2/rudc7/m83DaL2u1Tz31O8uQAlQE/GAzKNgx0GHOTBppe7yYTDwMH7+50Oo2zs7OSrNgDykAR0QQwL/1DfC3lsEfc5bd2a/6MewIoTAiZv3J5uCfHsnacHWMI98yaJfdBI8zbX6CZkd2JiShzgzZx/Q1AZc3UbYsVYIcKE5wdgISx4ThijzGvVHPmJzTb0WgU29vbMRgMikMKDXZ1dTW2t7fL4gDC6rymHeqJusY0ZwJCY890Qu7DNUBlxV0GVPPLBmyW6PZ6vWLe51VqGdRd58v+vUg6LXR5ebKA6vhEeLKcA9SdCI2i1+uV1T6TyaRoLI4xRRPNKcvMZ3qA2Ptq4LC2FXHXI1rjjLxoAEB1oH4G15qZbw3YnmOezTk8J1MAvDfaHsDCVh7mi1mO6d0t7XTKpiXRGC6LBTCnjvys7HCj/KSdY7Ij+H8+n5doBPPkbHuMswdPPaCMw4v3hQYixhPx8lcAfjabFcoIgMuJcTL9QggX+Xu9UMNZpehf3vLG8Z/UG5OJY6HbwHTR/38GEDswrcuTA1Q3dh4cZ2dnjY7IzO2leHRATEd4Oa8wodN6xZT5zGzqm+eMuAUODz46ulcF5fhH/4aWlwP1PTD53zRCxN00gjkYn+s8sCOa6eXIm8AyUMxoPOXci1VDbC3c5uCKiEYeWcec8r58bLoSmkb9UI9+L1sEtP/19XXRrufzedksj8xlOBpZKAKlQZ6A4XDY0NIBU8B2MpnE+fl5oRVYeIL5jYbNEt28U4InO7hXe+/hqFEM5vN5+Z33cP5S/uZZ3kfK9chnGZO+xnnXpAPP5eXJAaql379JJsxqFq94ySErHKPjsVUKCTTQKhBnpAJQAUAAgo6enUPWBrNGzXUZnA342XRngNo0dhIUe8WzxonmYuqBMjkiATD1tsBopWipOflwRJT4XSYQx0A6RZ5pB7Q2yrfIIZK5ab8D9zI4A0BwmizqwBwHJNGkoY2IZaUvQCV5KTLxym7vPIH4PaGm2jhUa6IOu8IZhfZLPfONxcU7IHmdfaZSsqPSv9ti6gDyr5MnB6jumADNaDRqaIqEldBp3XEwxeDADBAGGKd2s4bkgZs98x7Y7qTwX/b217SEGv+VBwfl5D7m4ay92lzOZbLjg2egoeetgr3bJfQHlECv12toVURdUL/Wtl1W6pEyUk7THG6vGk1SAzI+TI7QE9AC8/nNgg40zogovCtbgODBR4vNyzg9MUdEAWu3v7lPTzy2ZGzaE01A+fjdS2Odp4E6Y68zRw7Qz3Jin5q2WQPV2rkdwD6cPBlA9UCKaIIS+6Rb6xuPx3d4VDocXn0GLtps1q4YjDixzOFRJgM72oVBtjbgEYNJLRifctkRZq02m+2LPPbmNO08AyDgEPlg6pK82XlkARqEwe9dPk1jmGYBEGpiOscDHE0/c70Obct15ly4gCzWBtonz3D6u+vr6wK+19fXhfIxp4vTCY2VZ5gC8gTPuwOULCRhEpxMJg1z3s4sOw1p+2xpuI2pM3v5PX7aJHP6bo8a12+pKQdttMJzlycHqG0NB6gyuDL/6I7HYGBgGMwwXXEwYOJnTs8D3KEq1vwMpmgj/s2AaZDmHezEYfVWNvOtfbpOXAe5LqwZopnCgaKhYvbXtgsGZHgWgEr+UuqFlWbm9zJvyrme/HLURq4fe/3dFtSpzXucN7S1Y2YBHK+Gi7gNQ/I5lJFyWXN2BIXbAvOc8r9//z4mk0lJ1O064BwDrTOc2eKwtozQVyOitM0i7TRLBsAMsDVN9mPv2ckTAtQsHkz8T2zhbHa74ymb+nnWZxCZ4+JvHDIrKyvFycGgzIM5okkH2KHicqFhGtic3NdgTvlt1pvKYLDZ8YAYXDjfsY28O++JOQt4AqTef92TDgPczj2cMfZIY/pH3Ax+At/zO7vcrksPwnxeHujWCA2obiPax9yvHVqmZugH1D33cKxqrm9L1lT9wZllvtQaKP2Echk4re3nELXMzbpMpoD8/RDie7WBZweqTXkygFprlHwMhwOAiglEFn/+Nx9qrciAlnlJtA2DZS6LtYia6W8QBqSzVuBy2Jy0ZmeN184dD8q86ob6sRcfc54PDhqngPNmbl6GagqGgHbXO8/1tdyL6/jOdWDNnvrKExR1nKMcMj3geuM3Jig/x2DZr4ySAAAW8klEQVSdtX+3u8HPf1NOtxkhXOZL0VDhR71Fj/lR0ySOeXb/oD4cdUFZ80ThOve1tXr9FGnTaKmXDlRv5MkBam603FBoqru7uw3Ty8ml0WQYNPzPYEK79YAiXMagaWAxn5WP8Uxzsgw4gLDGD0bcdTzl6ADENIC3QoHisPbNKiC0UYOr92t3xqRsFnsygoOlrrxKKCLKDgkGVvjMrPFTbzUwdZ3bTM6gaWvCbWwApu5z/6Iuc7iZ393lcr8k4oFr8d47CN/xplhK1FHErblOHfPb9fVtAL8/tKuXpjopeqYFMqi2SR5nNcrN738fh9pG2T03eTKAaqmZhhyPaG75C3ChkXigY9YDOIPBoGh93mYiIu5oQXRM7umPgdXXGSg5nnlX7pEB1d5hm6ZeteUwHNeFg9fxXgOkfAyw3lLYZnrNlOaD6Q8IZI2ebWk4FxBHC7YGWNPoI5o7q9K2/lhD43/zqwj1nTXt2iTmtnSkRm5jJm1iUwFY4ksRT56mdnwv1wW/Zc3VnD6g6qW6eQLw85H7wNV1nSmuGt96H6i2HXtO8iQBdZkGAVR3d3cbJg+ZhzJP5mWFDEKbTr1er2iGNmXNU9rphJg/tZnojg0gZg7NWmnEXc2JZzIJWDN1NAMACkcKYGZQ5VzAlAFrU5/6NwABNgBl1hrz++btWigv72suNGdZqvHMlMGecZ9rKoB6M2hG3EYH1JyPrnvK5XuQUu/8/DxOT08bmz/mnVPph9bYeF8DPf0QiibnnjWoZYokTzJt4nFR0ygX/Z6l7bfnDqBZnhyg5kZv02iY1eH2kJOTk0bWfjopg4VQGIegZLFmYEcAg8zl5N6YfTZXDd55zTcAwYfj19fXZasWNCAGrT35eNcd+mTtE5D1twP3s5PNzpHsGOF9iBggY5P5XbQoKAnS3PFONsl7vdt9vjLQtpndnqh8X57vgW0grUVdZA3MfDXan52MBlTC9ZiA8go6yp016poGyCRF1AHlyBp3fqe8r1mmVLJYm/ex/PcicO5M+uXkyQGqpcbn5A+B/+abTk5OyoZzAKGvd/yitQDHjNr08++ZRwUM7JFH8zLvxsB2ghRHJxCxcHFxUcJuMp9qrhQwxXufPfc2+33cgJqBNNc54oGG5oupaw7XE4r5REcioE0S5+o6IBwqa63ZPMaaoLz3aUkZDD58+FA2ArQ5f3l52dAmbRnYeUS7um8xATk2lWfWOGRbB7VIFNqM37nOnGrtndvqwgDaJjXgdf3liWuR1ur3f07ypAE14m6mIo4Bbmg7dE4628nJSenIk8mkDGg6bwZM82fmQQ3G9vBH3M1QZUcETjFrrhG36/u5j7cv5gMIMfByfCgfe+7RQA2o/uR8m1kLzTyaTdOsOUIvzGa3W3rXOGKAzxoV93ddOTcDOwW4/mlz7sl7uF+4b2SzPoeWsU6fiAW00MlkEhHRiFHOiUqyFoyWaFojUz9ZyzZPatObiTaHoJl+YULzst82B5HHz6eKJ7J8X79XTdp++5pB9skDak08Q9Ko3hal3++XdfyXl5dxcnISFxcXd5wcNqPccW22G1Czo8par723lCs7OuwQQ/OZTCYxnU4bpr353RqQWuvMoVCAp8/PzqccmhPRjHHlnaxJ8f7X1zfLebe2tuJvf/tbvH37toStZaqEejJVQp2ySABHIYAK0AKE1oD5ePtmWwcOVQJ04UA9CbMrAYBq8KOtTONkIPUkzDsxefJOTJbz+bzklcjnA8amMKyBO4bZFpgnQsqUy/ln5SEcTs+RX/0iARXJMyZmEINuY2MjJpNJrK2txcnJSQEtp0yzw8mAY63LgArw2BxHW4CfNWii/VgLYmki2il8JIMCUw8wBCCtcRpYzZsaQBl8ORi+NlAymOb3tfNuMBiUkCsmBW9P48nHMaGZkybnqrVMh47Zgee0gc5ib86W5zjXqp/Hu9IW5oFrDrKapkc9mYO2M5N+QJ25D7kOeY41cAMt70Id067Uu9soO0pzmT9FfO1zA8U/I18soNZMPQYTndqhO8PhsPCTaISYeKxsQSPLg8fPZEBnp4y1FPhbNE4GfC2nqx0haLoAqk11a6c2662Fcj73Q4urcaXUmY9nMM3XWgMFfAjH8gSTg85NtViDc+iVrQPEFkG2GqbTaSO/Au0ScesEq0UOuB2pfzu/shlt8HNZ3e+YSJk0TEcB+pmzzqa069hlxCFGwhf6s1dZ8QzLp4Cg67sm+fgiLrWNBvja5YsF1EWC95Rv+EbzlJeXl3FxcVGWXpKI2l73DNZZu8Epw2+slGGTO7QmO2cibtdqA/oGQCe+tqZpLdWB816h5FjFNiBtA00fM/D5nKzB93o3+Ua3t7cjIgqtwiD3Mzzo+I3JxWauywcwRTT5VNonB8M75tdmfEQ9kN3gzvnZsWiNkf7U6906n6hv719FHzT1U+OiMy9JvWZQdZYvHJBQE7zPfWD4qbIINDu5K18soGYeNSLudM6sVQGs0+m0hBuRhen8/DwuLi7i4uKiOCxqfKvXa5NHIKLp7WeljEOdvCKJjz25/qBleoWMwdZ0QOZGDWQGJ8t9IVMGU39b+4JLBXgox/n5edFIHfdL+5hrjWjGjJpe8N5ejt/MfKYTlCDZkUVbcswA5KW2lIP742QyZeAIjdqky3saTJHMT5tnbqNj3Gb0X/h6a/4eE4ska+v5+H2mfu5Ti7TZ56ilfrGAGtEEVQ/ImpYDMHjw00E3NjZKzkpiDeEFMbnQMh3mk50tEbeJqzMPxyDOIGTw9HF79vP5eXWTuTl39jxIsgbaZtJnbZR6s+bk/1lMgPZ2dnZW2iib+ACxAcScdAYXwAsAMkdr7tsgRZt4aaYBkbqwJg4459AhTwKcw33MswNuvLN5eGgBg2wGVDtwcnvR/p6AHX63jDPKmnHt/yz3AWsndfkiAdUgVTuOeJasdTxA1csz2eANnvXy8rLQBPCuxH56Cag1LZtj5uYySAH4Bi2b+F7dlQE0g6Hfme/7zPx8nwyu1k7hTDF90ZABO6dEdOymgczOG8rGhJc1pqwtAkoZPAGtHALGPTypOtQJ0zo7r7jOkyVgyr3tmLJjk4nbfY9jlM8OpEWcpCdFUz2eJGvtX5P7wLP2/EW/33f8OWqmyBcJqIhNKyRradnR5Mbv9/sNpxBeVO9bBbCiqZpnzR59A0g2+awx1zhLAMOAao0nA2KbOZ/rIddJNuUzwOZy+TfEoUsADxMAYHR0dBSXl5eN0CBPPm4D2snva+3OdZA1wyyU12FJbneAHa3T5bPGl/nXzFly3BOm69xgbIoj3yO3YbY0VlZWyiaK7JPFeaZg8oSU6/dTZRHIdub+XfliALWtkdrANGun/t9OIQAR85rcnw6ncm5Sm/vOOpRXA+Xy5bIsMrlz5qdcD/5uq6v8nbXh/H/WdrJGz9+Y6zWn02AwiN3d3ej1eo3lqbVJzrlreV7mXXOdZS2yZpZHREMbNOBlbpX7uPz5udZUran3erertTz5cU+yS7l8LmdtMvT7UEY2U9zc3IzV1dVSD4Btfk/Lov5Ts+Y6+fPyxQBqxP1L3drMn5pJbG7V8YKz2c12Gl5aiCaatdH8samYO6w1Hp5vQKNsWUPM77jo/dvelbrJgFrTkmtl4X/fw2av6xSODw56PB43+D7qAurAJrefn9/LJrvL2ObFz5Oo698TgsOWAF3TNgAn97GF4Ql6bW0tIqJw7ZluoA54voGt1t4RUWKpNzc3YzgcNrb18Ttmrh5xXdX6Rr6mNlnXNOllwfdjz/8a5IsC1DapzfYczx2qjfx3ULdDaQyUBlLzcQbR7LHOn1zm2kCqdcRlTKhFwJq1SSSDaw1Ia+BrKiWXf319Pf7+97/HYDCIw8PD+OOPPxoZwMxf4sk3mGVQrb1X5jUNEI4M4BynPTSfTQhWdmrm6AaeSRnseKTPAJ6smLJzytf7nvC/eO6tDcPnj0ajO0tNOTfTMW1S62P3AWnb/8sA5HMCUctXAaiLJINSrWNlc43BalMth09xzAkz7LDwdwaFZaXtmja+rE1qoMm75++28xjMNY0nD775fB47OzsFMCMijo+PSyb7Xq/XSJAMyPl6O48Mbm1t4fLkdsEsZvEG2innOYuXqRZAnzJxTVs/cMxojorwPbKnnrLzfr1er2yfvru7G8PhsJTDdeR28ATT1kaWNi207ZpFYFobV89VvnpAteRGb+OdPBBqYGnNKMcpZo00n8vfLsOiYxlUa+flv2vvbc0u10cNUF0ffLdpKTUt1YsV0MCOjo7i/Pw83r9/X0DAJjfg6jrn2ZkXrdWx68KToQE5hz1lsON5BmqStUD3GLgAToAUjddZojLVk0Haf+OQ3N7ejr29vdjZ2Yn19fWGBdVW/wbktjbOx+87r5OPk2cFqFncmX0sd3Kf0wacHpw5xKbt/Nrx2nVIDTjy3zVgbdMkLTXAXMbkazvmpC5wjKPRKA4PD+Po6KjkfM2LBRxDCogAps7UZacYdUN75YnBnn+AB/AGxLBMMrBTNp4BoLLUN6fX8/P8fMpqWsA5evmNdJQHBwexv78fGxsbjVR9vEfWfv0+y2qWbW256PxOFsuzBlSkprnm39xh87ltWmYbCBsY7wPaZe9bK/uid6kdW8b0u+//DCKDwSB2dnbKAooXL17EfD6PN2/e3EnMnMtc08ZcB3Yc5fPNUdJuALStEGuLnJ93RWijO3iOKYRaP+HZBv88cVBfL168iJ2dnXj16lVsb283wN/3qtXXp2imy57TyXLSAepHyKLOWNMMFwFiG9hG3NVwl7m+7e/7NFYfu49Du28w+m9ra07sgoY1GAxiPB43VpxZg4PvZAIiPtdmtTW/TKeYUnDMao61NWfqiA7TEDXAoVwOnYITriUFz/GipJt0Mhu8+vv7+7G7uxurq6uNULEcYVCjhHI7LDq+LJB2ALu8dIBakU/pQG3X1DTGNi2yBpx2fLTdZ9EzagPOZb5PW/XxtrA0n8Mzc+A92tfe3l70er0YjUZxdHQUR0dHZduabI7nOFI4VGKDI6JhbrcBJ78bsP2s/O48C03QUR3WVg2o2dvu58HBOhsXS4r5fzgcxubmZrx8+TL29vZibW3tDvXU1m8W9deaVcU1y/TzDkw/TjpA/YtlGRMrog58DOA2LXXRdf6tDVTbBpXDg3xuLVC89k6ZZnDO0bW1tTg4OIj19fVGfOXR0VEjCgAA9jtkzT3nErUQjmSgQxN0aFIGSspo2gAKgFVV3NOZrtxWlMm5Ggy8Li+c6d7eXuzu7hbelPc0Z5o108wZL6ut+ppOHlY6QH0i0gZsn2LSc/w+4L2PZ/sY50YWa2vW6vr9ftmyhpVpw+EwhsNh/O9//2vsKupsU+ZHveSV+2I++50zaOSA/ojmViZ+P2ehynUD2Jpjdf3w7gCqryX/AbTHaDSKV69exbfffhvb29tlgqFsOfwqWyrLgOOitmsD4k4+TTpA/QxSG5SLfvd59517H6Ded06tTG1/L7o+i8uePfJoXqSiM6geHh7GyclJyezlRCYZ4LxDqIHHYJvfwccdS8o5gGt2Slk79Ls7ybXftfa3FzOsrKzE1tZWvHz5Ml69ehV7e3tlP61axELm2GuURlt7tfHAGWg7YP3z8mwAdRm+6a+SzIW1/W5ZtryLuNtltdjafR6CX6txsdlp1O/3Y319vQDs9vZ2/PHHH/HmzZs4Pj4u26Q42xW8pL3laH+W2lJP/kfzRQvmOCuqeA7fvr6mnZrrzcDP+bPZrGTd39raiv39/Tg4OIjRaFQ4VddVvg/PyUuWAeBlV921tV0HrH9eng2gPgW+6GPKsIzzpyY1gPSAX3TenynvouvzfQAKa2+k/1tfX4+NjY0YjUaxvr4ep6enRVvF849Znc1pQMhaJtqrM2F5qbBXawHKjhqgvDwja5lc66WmHOMZlHV1dTVGo1Fsbm7G9vZ2bG9vx8bGRiMCIDvhcn06ssH1u+iatnb5lLb81OufizwbQH2OsmgQLOLOHkpDabuPAdVmrL3iZFk6Pj6Ot2/fxtnZWVxeXkZEFA8/+UHttMnvZicSwEXyktpy12+++SaGw+EdUMSkB1C9FUrEremPg4rnMkkMh8Oy+gmNlK1MahZM5kYXHW8L7/rYdmmTj7n3c5cOUJ+xfIxD4lMG1DJeZzt47EknIQgbLJ6cnMR4PI7z8/M4OzsrGyw6CsLvk5d+AsLz+fzO/k/WZg3AnJ8dfOY0bebn61+8eBGj0Si2trZic3MzNjc3YzQaFW3cvG+mDTJwur6WOdbJ40gHqJ3ckY8B2vvuE9EOrFmLjLjlPQFEgyqAura2VqiAvL7eDiovFfXSUmum5h8N7HYKZVPa4Op7EkrlMjv9njdkzMtTXV+uj/zbpxzr5PNJB6hfmXys2dcGeg8Fqovu5eMZXAEz72IASBHDenZ2Fufn5yX3KrGe3CP/7wQjdlgBXjlR9DJ8JNd7Kx1MfMpKNIPX7GfHkp9RiwPO/7cB8V8hHUgvLx2gPlPJIFcDvc8FqhHRMKFzfk8AC4AlL8Dm5mbZWPHi4iLG43FJumKxNgkvSuZ8r8W3w4nzDL65zGjQ7Pc0HA5jNBoVMF1dXS1AyjMMpAbUHDvbZsZ3zqGnLR2gPmOpgWpEe3zqQzwv399ScxIZDL21NNrgxsZGTKfTGI/H8fbt2xiPx4UKIKWevfCmBgA46sGbCEbEnWTiEdHw8OPAWl9fL5s8DofDWFtbK2CK1mtawDGkbVroMoC6zPFOPq90gNrJHblPm/xYWUbzNYBkbc0rrazFsiYeUFtfXy8UwGQyKVuDX15e3nFa8SwWB+Q8p/l9zc2+ePGiAOjGxkasr6+XYy9evGik9UPrtZnf5pmvefSz3NcGHbA+rnSA+sxlGX6T/x/yGTlUqOb0MXDmJaJoqr1er6zbX11djc3Nzbi6uorpdFpoAKICrq6uGvefz+dlDyiiACgbDibvQgtoAt5ra2sNbZTtnrnO93DUQc2Ln4H1U3jRDkwfXzpA7eTRHVMWe9AjmsmZ2WYEAaRY8cQ3zqudnZ24urqK8XgcFxcX5fPu3bsCzmwPTlIWngcYOkk2GijfmPScw/9osvb829TnvRdpoIt41CxtK/A6+fzSAWonRRZpkn/V/RHiQNueaacRO6ZCARh0WVfvoP/hcBjT6bRorQAqpn4tQsBg6KxRgCugCYCixWYPvsOxspl/Hx+6bN13YPp0pAPUThqSTe9Fv1s+ZoFAPjcHyTuUqk1bBZhwHHmvJm+VEnEbDsU2LCS1tjMKLtXP4VlOEp15UGukjhbI96gtGW2rn06+XOkAtZNW+Vj+7s+susqaW16G6eM5djOiafYCbnjsWccf0cwm5WWvAHON26wBojXmGoDWvu1g6+TrlA5QO3l0WaQVt4UVIU5GwvV45B16ZUD18fy3n1PjM/PHmmkG1HyfTr5+6QC1ky9OaiC7iCbguH83mCL5Wu7t52WwdHD+Is99J89DOkDt5IuSNo3VNEGNo83/+1jb3/n+bd855KmT5ysdoHbyl8hjAEtNM6yBbFuYWP697djHvttftfKsk6cnHaB28uDylEAjO7jyb23XPJQ8VBxvJ1+GdIDayVcvywLkpwTId9pnJ5YOUDv5YiWvy3+K8pTL1snDSxcU18kXKdmR9GdN65yXtZNOPkV6H9OBer3em4j46a8rTieddNLJk5T/m8/nB/ed9FGA2kknnXTSSbt0Jn8nnXTSyQNJB6iddNJJJw8kHaB20kknnTyQdIDaSSeddPJA0gFqJ5100skDSQeonXTSSScPJB2gdtJJJ508kHSA2kknnXTyQNIBaieddNLJA8n/A0PD1ENPDMX8AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "img = cv2.imread(\"img.jpg\", 0)\n",
    "plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') # interpolation 插值\n",
    "plt.xticks([])\n",
    "plt.yticks([])  # 隐藏 X、Y 坐标的刻度值\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OpenCV 加载的彩色图像为 BGR 模式。但是 Matplotlib 以 RGB 模式显示。因此，如果使用 OpenCV 读取图像，Matplotlib 中的彩色图像将不能正确显示。\n",
    "\n",
    "以下是解决办法：对图像的模式进行转换，使之与 Matplotlib 或 OpenCV 匹配"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:23:01.988928Z",
     "start_time": "2019-01-26T16:22:59.607270Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "img_cv = cv2.imread(\"img.jpg\") # OpenCV 读取图像\n",
    "b, g, r = cv2.split(img_cv) # OpenCV 中图像显示是 BGR 模式，提取\n",
    "img_matplot = cv2.merge([r, g, b])\n",
    "plt.subplot(121)\n",
    "plt.imshow(img_cv) # 预计图像会是异常的\n",
    "plt.subplot(122)\n",
    "plt.imshow(img_matplot) # 预计是真实的图像\n",
    "plt.show()\n",
    "\n",
    "cv2.imshow('bgr image',img_cv) # 预计图像会是异常的\n",
    "cv2.imshow('rgb image',img_matplot) # 预计是真实的图像\n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg0z3gt3j20cp059tbh.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 更多资料\n",
    "\n",
    "[matplotlib 详细 API](https://matplotlib.org/api/pyplot_api.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 视频入门\n",
    "学习目标：\n",
    "- 显示视频、保存视频\n",
    "- 从相机进行捕获\n",
    "- cv2.VideoCapture(), cv2.VideoWriter() 函数使用"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T05:29:19.191255Z",
     "start_time": "2019-01-26T05:29:18.943361Z"
    }
   },
   "source": [
    "#### 从相机捕获视频\n",
    "笔记本自带摄像头"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:23:11.455494Z",
     "start_time": "2019-01-26T16:23:07.331854Z"
    }
   },
   "outputs": [],
   "source": [
    "# 创建一个 VideoCapture 对象，参数是设备的索引即摄像机的编号或者 Video 的文件名\n",
    "# 这里的 0 是指第一台摄像机，以此类推\n",
    "cap = cv2.VideoCapture(0)\n",
    "while (True):\n",
    "    # while cap.isOpened():\n",
    "    # 一帧一帧的捕获\n",
    "    ret, frame = cap.read()\n",
    "\n",
    "    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n",
    "    # 显示\n",
    "    cv2.imshow(\"frame\", gray)  # 窗口名为 frame\n",
    "    if cv2.waitKey(1) & 0xFF == ord('q'):\n",
    "        break\n",
    "cap.release()  # 关闭视频文件或设备\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkg242htxj20i90egtda.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`cap.read()` 返回一个bool (True/False)。如果帧被正确读取，它将为真。通过检查这个返回值来检查视频的结尾。\n",
    "\n",
    "有时，cap 可能没有初始化捕获。在这种情况下，这段代码显示错误。可以通过方法 `cap.isOpened()` 检查它是否初始化。如果为真，则 ok。否则使用 `cap.open()` 打开它。\n",
    "\n",
    "可以通过 `cap.get(propId)` 获取视频的一些属性，propId 值为：0 to 18。每个值代表视频的一个属性，详见 [Property Identifier](https://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-get) 也可以通过 `cap.set(propId, value)` 设置视频的属性。\n",
    "例如：可以通过 `cap.get(3)` 和 `cap.get(4)` 检查帧的宽和高，默认是 640x480。通过 `ret = cap.set(3,320)` 和 `ret = cap.set(4,240)` 将宽和高重新设定。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:23:19.848699Z",
     "start_time": "2019-01-26T16:23:15.623113Z"
    }
   },
   "outputs": [],
   "source": [
    "# 创建一个 VideoCapture 对象，参数是设备的索引即摄像机的编号或者 Video 的文件名\n",
    "# 这里的 0 是指第一台摄像机，以此类推\n",
    "cap = cv2.VideoCapture(0)\n",
    "while (True):\n",
    "    # while cap.isOpened():\n",
    "    # 一帧一帧的捕获\n",
    "    ret, frame = cap.read()\n",
    "    ret = cap.set(3, 320)\n",
    "    ret = cap.set(4, 240)\n",
    "    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n",
    "\n",
    "    cv2.imshow(\"frame\", gray)\n",
    "    if cv2.waitKey(1) & 0xFF == ord('q'):\n",
    "        break\n",
    "cap.release()\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkg30uoxgj209d07st9u.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 从文件进行播放"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:23:30.296720Z",
     "start_time": "2019-01-26T16:23:27.864114Z"
    }
   },
   "outputs": [],
   "source": [
    "cap = cv2.VideoCapture('vtest.avi')\n",
    "\n",
    "while(cap.isOpened()):\n",
    "    ret, frame = cap.read()\n",
    "\n",
    "    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n",
    "\n",
    "    cv2.imshow('frame', gray)\n",
    "    if cv2.waitKey(1) & 0xFF == ord('q'):\n",
    "        break\n",
    "\n",
    "cap.release()\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg48a9dtj20vz0lc0ys.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**如果视频播放结束，还没按键按下，会出现错误。** 改进如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:23:56.441769Z",
     "start_time": "2019-01-26T16:23:38.933783Z"
    }
   },
   "outputs": [],
   "source": [
    "import cv2\n",
    "cap = cv2.VideoCapture('vtest.avi')\n",
    "\n",
    "while(cap.isOpened()):\n",
    "    ret, frame = cap.read()\n",
    "\n",
    "    if ret == True:\n",
    "        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n",
    "        cv2.imshow('frame', gray)\n",
    "    if ret == False:\n",
    "        # cap.release() # 释放掉开启的视频\n",
    "        # print(\"1\") # 测试\n",
    "\n",
    "        cv2.waitKey(0)  # 暂停在最后一帧\n",
    "        break  # 关闭窗口后退出\n",
    "    if cv2.waitKey(1) & 0xFF == ord('q'):\n",
    "        break\n",
    "\n",
    "cap.release()\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "改进以后，程序会一直监测视频是否到最后一帧，若是最后一帧，则 ret 为 False ，暂停在最后一帧并且在关闭窗口后退出"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 保存视频"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:24:23.251439Z",
     "start_time": "2019-01-26T16:24:08.481887Z"
    }
   },
   "outputs": [],
   "source": [
    "cap = cv2.VideoCapture(0)\n",
    "\n",
    "# Define the codec and create VideoWriter object\n",
    "# cv2.VideoWriter_fourcc('X','V','I','D') 功能一样\n",
    "fourcc = cv2.VideoWriter_fourcc(*'XVID')\n",
    "\n",
    "# 创建 VideoWriter 对象，指定输出文件名 output.avi， FourCC 代码，传递每秒帧数和帧大小\n",
    "out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))\n",
    "\n",
    "while(cap.isOpened()):\n",
    "    ret, frame = cap.read()\n",
    "    if ret == True:\n",
    "        # 对每一帧进行翻转\n",
    "        frame = cv2.flip(frame, 0)  # 注释见下\n",
    "\n",
    "        # write the flipped frame\n",
    "        out.write(frame)\n",
    "\n",
    "        cv2.imshow('frame', frame)\n",
    "        if cv2.waitKey(1) & 0xFF == ord('q'):\n",
    "            break\n",
    "    else:\n",
    "        break\n",
    "\n",
    "# Release everything if job is finished\n",
    "cap.release()\n",
    "out.release()\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T06:16:55.952887Z",
     "start_time": "2019-01-26T06:16:55.866935Z"
    }
   },
   "source": [
    "FourCC 是一个 4 字节的代码，用于指定视频编解码器，**依赖于平台**，到时看具体平台进行选择。更多 FourCC 代码见 [官网](http://www.fourcc.org/)\n",
    "\n",
    "`cv2.flip(src, flipCode[, dst]) → dst`: flipCode: 0表示绕 x 轴翻转，正值(例如，1)表示绕 y 轴翻转。负值(例如 -1)表示在两个轴上翻转。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 更多资料\n",
    "[opencv documentation](https://docs.opencv.org/2.4/index.html#)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### OpenCV 绘图功能\n",
    "学习目标:\n",
    "- 使用 OpenCV 绘制不同几何形状\n",
    "- cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putText()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "以下图像都用 matplotlib 绘制"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 函数共有参数说明\n",
    "- img: 要操作的图像\n",
    "- color：绘制形状的颜色， RGB 传入元组如(255, 255, 255)， 灰度值只需传入标量\n",
    "- thickness：线或圆等的厚度。如果对圆形等闭合图形传递 -1 ，则填充形状。默认为 1\n",
    "- lineType：线的类型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 绘制各种形状"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:24:44.385351Z",
     "start_time": "2019-01-26T16:24:32.284274Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x170d39f7240>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 需要给定直线的起始和结束坐标\n",
    "\n",
    "# 创建一个黑色的画布\n",
    "img = np.zeros((512, 512, 3), np.uint8)\n",
    "\n",
    "# 绘制坐标 (0, 0) -> (510, 128) 直线 蓝色，厚度为 5px\n",
    "img = cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)  # OpenCV 为 BGR 模式\n",
    "# 绘制长方形，起始和终点坐标，颜色，厚度\n",
    "img = cv2.rectangle(img, (384, 10), (505, 120), (0, 255, 0), 3)\n",
    "# 绘制圆形，给定圆心，半径，最后 -1 为图形填充\n",
    "img = cv2.circle(img, (447, 63), 63, (0, 0, 255), -1)\n",
    "# 绘制椭圆，椭圆心，长轴，短轴，角度，起始结束角，填充\n",
    "img = cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1)\n",
    "# 绘制多边形，给定多边形的顶点坐标\n",
    "pts = np.array([[50, 50], [40, 40], [60, 40], [60, 100]], np.int32)\n",
    "pts = pts.reshape((-1, 1, 2))\n",
    "# 若第三个参数为 False，则得到连接所有点的折线，而不是一个闭合的形状。该函数可以用来绘制多条直线\n",
    "img = cv2.polylines(img, [pts], True, (0, 255, 255))\n",
    "# 添加文字到图形中\n",
    "font = cv2.FONT_HERSHEY_SIMPLEX  # 指定字体\n",
    "cv2.putText(img, 'OpenCV', (10, 500), font, 4, (255, 255, 255),\n",
    "            2, cv2.LINE_AA)  # 绘制的图像，文字，文字左下角的坐标,字体，字体颜色，厚度等\n",
    "\n",
    "cv2.imshow(\"diff type\", img)\n",
    "k = cv2.waitKey(0) & 0xFF\n",
    "if k == 27:\n",
    "    cv2.destroyAllWindows()\n",
    "\n",
    "\n",
    "b, g, r = cv2.split(img)\n",
    "img = cv2.merge([r, g, b])\n",
    "plt.subplot(121)\n",
    "plt.xticks([])\n",
    "plt.yticks([])\n",
    "plt.imshow(img)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkg6y64ejj20ep0fcgly.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "作业：绘制 OpenCV 图标 ![](https://opencv-python-tutroals.readthedocs.io/en/latest/_static/opencv-logo-white.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T12:12:41.816773Z",
     "start_time": "2019-01-26T12:12:41.809778Z"
    }
   },
   "source": [
    "#### 更多资料\n",
    "- [绘制椭圆时角度的确定](http://answers.opencv.org/question/14541/angles-in-ellipse-function/)\n",
    "- [本小节见此](https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html)\n",
    "- [Ascii 表](http://www.asciitable.com/)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 鼠标作为画笔\n",
    "学习目标：\n",
    "- 处理鼠标事件\n",
    "- cv2.setMouseCallback()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 简单 Demo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，创建一个鼠标回调函数，该函数在鼠标事件发生时执行。鼠标事件可以是任何与鼠标相关的东西，如左键向下、左键向上、左键双击等。它为每个鼠标事件提供坐标 (x,y)。有了这个事件和位置，我们可以做任何我们想做的事情。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:25:07.865925Z",
     "start_time": "2019-01-26T16:25:07.855930Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['EVENT_FLAG_ALTKEY',\n",
       " 'EVENT_FLAG_CTRLKEY',\n",
       " 'EVENT_FLAG_LBUTTON',\n",
       " 'EVENT_FLAG_MBUTTON',\n",
       " 'EVENT_FLAG_RBUTTON',\n",
       " 'EVENT_FLAG_SHIFTKEY',\n",
       " 'EVENT_LBUTTONDBLCLK',\n",
       " 'EVENT_LBUTTONDOWN',\n",
       " 'EVENT_LBUTTONUP',\n",
       " 'EVENT_MBUTTONDBLCLK',\n",
       " 'EVENT_MBUTTONDOWN',\n",
       " 'EVENT_MBUTTONUP',\n",
       " 'EVENT_MOUSEHWHEEL',\n",
       " 'EVENT_MOUSEMOVE',\n",
       " 'EVENT_MOUSEWHEEL',\n",
       " 'EVENT_RBUTTONDBLCLK',\n",
       " 'EVENT_RBUTTONDOWN',\n",
       " 'EVENT_RBUTTONUP']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 列出鼠标处理的事件\n",
    "events = [i for i in dir(cv2) if 'EVENT' in i]\n",
    "events"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:25:44.189172Z",
     "start_time": "2019-01-26T16:25:08.983286Z"
    }
   },
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "# 功能函数，在鼠标处左键双击，绘制白色填充的圆\n",
    "def draw_circle(event, x, y, flags, param):\n",
    "    if event == cv2.EVENT_LBUTTONDBLCLK:\n",
    "        cv2.circle(img, (x, y), 100, (255, 255, 255), -1)\n",
    "\n",
    "\n",
    "# 创建一个黑色画布\n",
    "img = np.zeros((512, 512, 3), np.uint8)\n",
    "cv2.namedWindow(\"image\")\n",
    "# 创建鼠标回调函数，绑定功能函数\n",
    "cv2.setMouseCallback(\"image\", draw_circle)\n",
    "\n",
    "while(1):\n",
    "    cv2.imshow(\"image\", img)\n",
    "    if cv2.waitKey(20) & 0xFF == 27:\n",
    "        break\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39gy1fzkg7jvqtyj20ep0fc3yl.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T12:56:48.302689Z",
     "start_time": "2019-01-26T12:56:44.399925Z"
    }
   },
   "source": [
    "#### 高级 Demo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在我们要做更多更好的应用。在这里，通过拖动鼠标来绘制矩形或圆形(这取决于我们选择的模式)，就像在 Paint 应用程序中所做的那样。我们的鼠标回调函数有两部分，一部分用来画矩形，另一部分用来画圆。这个具体的例子将非常有助于创建和理解一些交互式应用程序，如**对象跟踪，图像分割等。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:26:10.952847Z",
     "start_time": "2019-01-26T16:25:45.282528Z"
    }
   },
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "\n",
    "drawing = False # 鼠标按下为 True\n",
    "mode = True # 按键 'm' 切换模式\n",
    "ix, iy = -1, -1\n",
    "\n",
    "\n",
    "def draw(event, x, y, flags, param):\n",
    "    global ix, iy, drawing, mode\n",
    "\n",
    "    if event == cv2.EVENT_LBUTTONDOWN: # 鼠标放下\n",
    "        drawing = True\n",
    "        ix, iy = x, y # 鼠标放下时的坐标\n",
    "\n",
    "    elif event == cv2.EVENT_MOUSEMOVE: # 鼠标移动\n",
    "        if drawing == True:\n",
    "            if mode == True:\n",
    "                cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)\n",
    "            else:\n",
    "                cv2.circle(img, (x, y), 5, (0, 0, 255), -1)\n",
    "\n",
    "    elif event == cv2.EVENT_LBUTTONUP: # 鼠标提起，结束绘制\n",
    "        drawing = False\n",
    "        # ------------- 中间这一段要不要？\n",
    "        if mode == True:\n",
    "            cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)\n",
    "        else:\n",
    "            cv2.circle(img, (x, y), 5, (0, 0, 255), -1)    \n",
    "        # -------------\n",
    "\n",
    "\n",
    "img = np.zeros((512, 512, 3), np.uint8)\n",
    "cv2.namedWindow(\"image\")\n",
    "cv2.setMouseCallback(\"image\", draw) # 功能绑定\n",
    "\n",
    "while(1):\n",
    "    cv2.imshow(\"image\", img)\n",
    "    k = cv2.waitKey(1) & 0xFF\n",
    "    if k == ord('m'): # 按键 'm' 切换模式\n",
    "        mode = not mode\n",
    "    elif k == 27:\n",
    "        break\n",
    "        \n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg8f7ktpj20ep0fc0ss.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 轨迹栏作为调色板\n",
    "学习目标：\n",
    "- 将轨迹栏绑定到 OpenCV 窗口\n",
    "- cv2.getTrackbarPos(), cv2.createTrackbar()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T14:49:37.430668Z",
     "start_time": "2019-01-26T14:48:37.448967Z"
    }
   },
   "source": [
    "#### Demo\n",
    "创建简单的应用程序，通过滑动轨迹条调节 BGR 的值从而改变画布颜色，初始颜色为黑色。\n",
    "\n",
    "cv2.createTrackbar() 函数，第一个参数是 trackbar 名称，第二个参数是将用作创建的 trackbar 的父窗口的名称，第三个参数是默认值，第四个参数是最大值，第五个参数是回调函数，每次 trackbar 值发生变化时都会执行回调函数。回调函数总是有一个默认参数，即 trackbar 位置。在我们的例子中，函数什么也不做，所以我们只是传递。\n",
    "\n",
    "trackbar 的另一个重要应用是将其用作按钮或开关。默认情况下，OpenCV 没有按钮功能。所以你可以使用 trackbar 来获得这样的功能。在我们的应用程序中，我们已经创建了一个开关，在这个开关中应用程序只在开关打开时才工作，否则屏幕总是黑色的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:26:38.670997Z",
     "start_time": "2019-01-26T16:26:25.378601Z"
    }
   },
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "def nothing(x):\n",
    "    pass\n",
    "\n",
    "\n",
    "img = np.zeros((300, 512, 3), np.uint8)\n",
    "cv2.namedWindow(\"image\")\n",
    "\n",
    "cv2.createTrackbar('R', 'image', 0, 255, nothing)\n",
    "cv2.createTrackbar('G', 'image', 0, 255, nothing)\n",
    "cv2.createTrackbar('B', 'image', 0, 255, nothing)\n",
    "\n",
    "switch = '0 : OFF \\n1 : ON'\n",
    "cv2.createTrackbar(switch, 'image', 0, 1, nothing)\n",
    "\n",
    "while(1):\n",
    "    cv2.imshow('image', img)\n",
    "    k = cv2.waitKey(1) & 0xFF\n",
    "    if k == 27:\n",
    "        break\n",
    "    r = cv2.getTrackbarPos('R', 'image')\n",
    "    g = cv2.getTrackbarPos('G', 'image')\n",
    "    b = cv2.getTrackbarPos('B', 'image')\n",
    "    s = cv2.getTrackbarPos(switch, 'image')\n",
    "\n",
    "    if s == 0:\n",
    "        img[:] = 0\n",
    "    else:\n",
    "        img[:] = [b, g, r]\n",
    "\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg8wan3cj20ep0ga74d.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T15:41:51.789334Z",
     "start_time": "2019-01-26T15:41:46.382426Z"
    }
   },
   "source": [
    "#### 练习\n",
    "创建一个画笔颜色和笔刷半径可调的滑动轨迹条"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-01-26T16:27:27.839931Z",
     "start_time": "2019-01-26T16:26:50.928987Z"
    }
   },
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "def nothing(x):\n",
    "    pass\n",
    "\n",
    "\n",
    "radius_t = 1\n",
    "bt, gt, rt = 255, 255, 255\n",
    "\n",
    "\n",
    "def draw_circle(event, x, y, radius, b=255, g=255, r=255):\n",
    "    global radius_t, bt, gt, rt\n",
    "    radius = radius_t\n",
    "    b, g, r = bt, gt, rt\n",
    "    if event == cv2.EVENT_LBUTTONDBLCLK:\n",
    "        cv2.circle(img, (x, y), radius, (b, g, r), -1)\n",
    "\n",
    "\n",
    "img = np.zeros((1366, 768, 3), np.uint8)\n",
    "cv2.namedWindow(\"image\")\n",
    "\n",
    "# --------- 画笔颜色\n",
    "cv2.createTrackbar('brush_radius', 'image', 1, 10, nothing)\n",
    "cv2.createTrackbar('pen_B', 'image', 0, 255, nothing)\n",
    "cv2.createTrackbar('pen_G', 'image', 0, 255, nothing)\n",
    "cv2.createTrackbar('pen_R', 'image', 0, 255, nothing)\n",
    "\n",
    "\n",
    "# 创建鼠标回调函数，绑定功能函数\n",
    "cv2.setMouseCallback(\"image\", draw_circle)\n",
    "\n",
    "while(1):\n",
    "    cv2.imshow('image', img)\n",
    "    k = cv2.waitKey(1) & 0xFF\n",
    "    if k == 27:\n",
    "        break\n",
    "    \n",
    "    brush_radius = cv2.getTrackbarPos('brush_radius', 'image')\n",
    "    pen_B = cv2.getTrackbarPos('pen_B', 'image')\n",
    "    pen_G = cv2.getTrackbarPos('pen_G', 'image')\n",
    "    pen_R = cv2.getTrackbarPos('pen_R', 'image')\n",
    "\n",
    "    # 对鼠标函数参数进行赋值\n",
    "    radius_t = brush_radius \n",
    "    bt, gt, rt = pen_B, pen_G, pen_R\n",
    "\n",
    "cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws1.sinaimg.cn/large/acbcfa39ly1fzkg9qsow0j20lt0kwq3a.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 更多资料\n",
    "[createtrackbar API](https://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=createtrackbar)"
   ]
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {
    "height": "210px",
    "width": "305px"
   },
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
